1############################################################################### 2# 3# ��Wiki��������ޤ��� 4# WikiFarm�������Farm��ǽ����Ѥ�������ˤʤäƤ�����Τ�ͭ���ˤʤ�ޤ��� 5# 6############################################################################### 7package plugin::core::CreateWikiHandler; 8use strict; 9use plugin::core::WikiList; 10#============================================================================== 11# ���ȥ饯�� 12#============================================================================== 13sub new { 14 my $class = shift; 15 my $self = {}; 16 return bless $self,$class; 17} 18 19#============================================================================== 20# ���������ϥ�ɥ� 21#============================================================================== 22sub do_action{ 23 my $self = shift; 24 my $farm = shift; 25 my $cgi = $farm->get_CGI; 26 my $child = $cgi->param("child"); 27 my $admin_id = $cgi->param("admin_id"); 28 my $admin_pass = $cgi->param("admin_pass"); 29 30 my $can_create = 1; 31 32 my $config = &Util::load_config_hash($farm,$farm->config('farmconf_file')); 33 my $login = $farm->get_login_info(); 34 if($config->{create}==1){ 35 if(!defined($login)){ 36 $can_create = 0; 37 #return $farm->error("Wiki�κ����ϵ��Ĥ���Ƥ��ޤ���"); 38 } 39 } elsif($config->{create}==2){ 40 if(!defined($login) || $login->{type}!=0){ 41 $can_create = 0; 42 #return $farm->error("Wiki�κ����ϵ��Ĥ���Ƥ��ޤ���"); 43 } 44 } 45 46 if($child eq ""){ 47 # ��Wiki��̾�����ϥե����� 48 $farm->set_title("WikiFarm",1); 49 my $buf = ""; 50 51 if($can_create==1){ 52 $buf = "<h2>����Wiki�κ���</h2>\n". 53 "<form method=\"post\" action=\"".$farm->config('script_name')."\">\n". 54 " <h3>Wiki��̾��</h3>\n". 55 " <p>���������ꤷ��Wiki̾��URL�˴ޤޤ�ޤ��ΤǤ���Wiki����ħ��ɽ������". 56 " �Ǥ������û��̾����Ĥ��뤳�Ȥ����ᤷ�ޤ���". 57 " Ⱦ�ѱѿ����������ѤǤ��ޤ���</p>\n". 58 " <p>Wiki̾��<input type=\"text\" name=\"child\" size=\"40\"></p>". 59 " <h3>�����Ԥξ���</h3>\n". 60 " <p>��������Wiki�δ�����ID�ȥѥ���ɤ����ꤷ�Ƥ���������". 61 " Ⱦ�ѱѿ����������ѤǤ��ޤ���</p>\n". 62 " <p>ID��<input type=\"text\" size=\"20\" name=\"admin_id\">\n". 63 " Pass��<input type=\"password\" size=\"20\" name=\"admin_pass\">\n". 64 " </p>\n". 65 " <input type=\"submit\" value=\" ���� \">". 66 " <input type=\"hidden\" name=\"action\" value=\"CREATE_WIKI\">". 67 "</form>\n"; 68 } 69 70 # ��Wiki�ΰ��� 71 my $wikilist = plugin::core::WikiList->new(); 72 my $listcnt = $wikilist->paragraph($farm); 73 74 $buf .= "<h2>Wiki�����Ȥΰ���</h2>\n"; 75 76 if($listcnt eq "<ul>\n</ul>\n"){ 77 $buf .= "<p>���ߤ���Wiki�۲��ˤ�Wiki�����ȤϤ���ޤ���</p>"; 78 } else { 79 $buf .= "<p>���ߤ���Wiki���۲��ˤϰʲ���Wiki�����Ȥ�¸�ߤ��ޤ���</p>".$listcnt; 80 } 81 82 return $buf; 83 84 }else{ 85 if($can_create==0){ 86 return $farm->error("Wiki�κ����ϵ��Ĥ���Ƥ��ޤ���"); 87 } 88 89 # ���ϥ����å� 90 if(!($child =~ /^[A-Za-z0-9]+$/)){ 91 return $farm->error(&Util::escapeHTML($child)."��������̾�ΤǤ���"); 92 93 } elsif($admin_id eq ""){ 94 return $farm->error("������ID�����Ϥ��Ƥ���������"); 95 96 } elsif($admin_pass eq ""){ 97 return $farm->error("�����ԥѥ���ɤ����Ϥ��Ƥ���������"); 98 99 } elsif(!($admin_id =~ /^[A-Za-z0-9]+$/)){ 100 return $farm->error("������ID�������Ǥ���"); 101 102 } elsif(!($admin_pass =~ /^[A-Za-z0-9]+$/)){ 103 return $farm->error("�����ԥѥ���ɤ������Ǥ���"); 104 105 # ��Wiki�ν�ʣ������å� 106 } elsif($farm->wiki_exists($child)){ 107 return $farm->error(&Util::escapeHTML($child)."�ϴ���¸�ߤ��ޤ���"); 108 109 # �桼���ν�ʣ������å� 110 #} elsif($farm->user_exists($admin_id)){ 111 # return $farm->error("ID��".&Util::escapeHTML($admin_id)."�Υ桼���ϴ���¸�ߤ��ޤ���"); 112 113 # ��Wiki���� 114 } else { 115 $farm->create_wiki($child,$admin_id,$admin_pass); 116 $farm->set_title(&Util::escapeHTML($child)."��������ޤ���"); 117 return "<a href=\"".$farm->config('script_name')."/".&Util::escapeHTML($child)."\">". 118 &Util::escapeHTML($child)."</a>��������ޤ�����"; 119 } 120 } 121} 122 1231; 124