############################################################################### # # 管理者ログイン時にページ編集画面に権限変更用のフォームを出力するプラグイン。 # ############################################################################### package plugin::admin::PermissionForm; use strict; #============================================================================== # コンストラクタ #============================================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #============================================================================== # 編集フォームを出力するメソッド #============================================================================== sub editform { my $self = shift; my $wiki = shift; my $cgi = $wiki->get_CGI; my $page = $cgi->param("page"); unless($wiki->page_exists($page)){ return ""; } my $login = $wiki->get_login_info(); unless(defined($login)){ return ""; } if($login->{type}!=0){ return ""; } my $show_level = $wiki->get_page_level($page); my $buf = "

ページの参照・更新権限

\n"; $buf .= "
config('script_name')."\" method=\"POST\">\n"; $buf .= "\n"; if($wiki->is_freeze($page)){ $buf .= ""; } else { $buf .= ""; } $buf .= "\n"; $buf .= "\n"; $buf .= "
\n"; return $buf; } #============================================================================== # アクションハンドラメソッド #============================================================================== sub do_action { my $self = shift; my $wiki = shift; my $cgi = $wiki->get_CGI; my $page = $cgi->param("page"); if($cgi->param("change_show_level") ne ""){ my $level = $cgi->param("show_level"); $wiki->set_page_level($page,$level); } elsif($cgi->param("unfreeze") ne ""){ $wiki->un_freeze_page($page); } elsif($cgi->param("freeze") ne ""){ $wiki->freeze_page($page); } $wiki->redirect($page); } 1;