############################################################################### # # 管理者ログイン # ############################################################################### package plugin::admin::Login; use strict; #============================================================================== # コンストラクタ #============================================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #============================================================================== # アクションハンドラ #============================================================================== sub do_action { my $self = shift; my $wiki = shift; $wiki->set_title("管理"); my $cgi = $wiki->get_CGI; if($cgi->param("logout") ne ""){ return $self->logout($wiki); } if(defined($wiki->get_login_info($cgi))){ return $self->admin_form($wiki,$wiki->get_login_info($cgi)); } else { # ログインの判定 my $id = $cgi->param("id"); my $pass = $cgi->param("pass"); if($id ne "" && $pass ne ""){ my $login = $wiki->login_check($id,&Util::md5($pass,$id)); if(defined($login)){ my $session = $cgi->get_session($wiki,1); $session->param("wiki_id" ,$id); $session->param("wiki_type",$login->{type}); $session->param("wiki_path",$login->{path}); $session->flush(); $wiki->redirectURL($wiki->config('script_name')."?action=LOGIN"); } else { return $wiki->error("IDもしくはパスワードが違います。"); } } } return $self->default($wiki); } #============================================================================== # 管理画面フォーム #============================================================================== sub admin_form { my $self = shift; my $wiki = shift; my $login = shift; my $buf = "