1 ###############################################################################
3 # ¥æ¡¼¥¶´ÉÍý¤ò¹Ô¤¦¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é
5 ###############################################################################
6 package plugin::admin::AdminUserHandler;
8 #==============================================================================
10 #==============================================================================
14 return bless $self,$class;
17 #==============================================================================
18 # ¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é¥á¥½¥Ã¥É
19 #==============================================================================
23 my $cgi = $wiki->get_CGI;
25 $wiki->set_title("¥æ¡¼¥¶´ÉÍý");
27 if($cgi->param("delete") ne ""){
28 return $self->delete_user($wiki);
30 } elsif($cgi->param("regist") ne ""){
31 return $self->user_form($wiki,{});
33 } elsif($cgi->param("update") ne ""){
34 my $users = &Util::load_config_hash($wiki,$wiki->config('userdat_file'));
35 my $id = $cgi->param("update");
36 my ($pass,$type) = split(/\t/,$users->{$id});
38 return $self->user_form($wiki,{id=>$id,pass=>$pass,type=>$type});
40 } elsif($cgi->param("saveuser") ne ""){
41 return $self->save_user($wiki);
43 } elsif($cgi->param("changepass") ne ""){
44 return $self->change_pass($wiki);
47 return $self->user_list($wiki);
51 #==============================================================================
53 #==============================================================================
58 my $users = &Util::load_config_hash($wiki,$wiki->config('userdat_file'));
59 my $buf .= "<h2>¥æ¡¼¥¶°ìÍ÷</h2>\n".
61 "<tr><th>ID</th><th>¼ïÊÌ</th><th>Áàºî</th></tr>\n";
63 foreach my $id (sort(keys(%$users))){
64 my ($pass,$type) = split(/\t/,$users->{$id});
67 $buf .= " <td>".&Util::escapeHTML($id)."</td>\n";
69 $buf .= " <td>´ÉÍý¼Ô</td>\n";
71 $buf .= " <td>°ìÈÌ</td>\n";
73 $buf .= " <td><a href=\"".$wiki->create_url({action=>"ADMINUSER",update=>$id})."\">Êѹ¹</a> ".
74 "<a href=\"".$wiki->create_url({action=>"ADMINUSER",delete=>$id})."\">ºï½ü</a></td>\n";
78 $buf .= "<form action=\"".$wiki->create_url()."\" method=\"GET\">\n".
79 " <input type=\"submit\" name=\"regist\" value=\"¥æ¡¼¥¶¤ÎÄɲÃ\">\n".
80 " <input type=\"hidden\" name=\"action\" value=\"ADMINUSER\">\n".
85 #==============================================================================
86 # ¥æ¡¼¥¶Äɲᦹ¹¿·¥Õ¥©¡¼¥à
87 #==============================================================================
93 my $buf = "<form action=\"".$wiki->create_url()."\" method=\"POST\">\n";
94 if(defined($data->{id})){
95 $buf .= "<h2>¥æ¡¼¥¶¤ÎÊѹ¹</h2>";
97 $buf .= "<h2>¥æ¡¼¥¶¤ÎÄɲÃ</h2>";
99 $buf .= "<h3>ID</h3>\n";
100 if(defined($data->{id})){
101 $buf .= "<p><b>".&Util::escapeHTML($data->{id})."</b>¡ÊÊѹ¹¤Ï¤Ç¤¤Þ¤»¤ó¡Ë</p>\n";
102 $buf .= "<input type=\"hidden\" name=\"id\" value=\"".&Util::escapeHTML($data->{id})."\">\n";
104 $buf .= "<p><input type=\"text\" name=\"id\" size=\"20\"></p>\n";
106 if(!defined($data->{id})){
107 $buf .= "<h3>¥Ñ¥¹¥ï¡¼¥É</h3>\n";
108 $buf .= "<p><input type=\"password\" name=\"pass\" size=\"20\"></p>\n";
110 $buf .= "<h3>¼ïÊÌ</h3>\n";
112 $buf .= "<input type=\"radio\" name=\"type\" value=\"0\" id=\"type_0\"";
113 if($data->{type}!=1){ $buf .= " checked"; }
114 $buf .= "><label for=\"type_0\">´ÉÍý¼Ô</label>\n";
115 $buf .= "<input type=\"radio\" name=\"type\" value=\"1\" id=\"type_1\"";
116 if($data->{type}==1){ $buf .= " checked"; }
117 $buf .= "><label for=\"type_1\">°ìÈÌ</label>\n";
120 if(defined($data->{id})){
121 $buf .= "<input type=\"submit\" name=\"saveuser\" value=\"Êѹ¹\">\n";
123 $buf .= "<input type=\"submit\" name=\"saveuser\" value=\"ÄɲÃ\">\n";
125 $buf .= "<input type=\"hidden\" name=\"action\" value=\"ADMINUSER\">\n";
128 if(defined($data->{id})){
129 $buf .= "<form action=\"".$wiki->create_url()."\" method=\"POST\">\n";
130 $buf .= " <h2>¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹</h2>\n";
131 $buf .= " <h3>¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É</h3>\n";
132 $buf .= " <p><input type=\"password\" name=\"pass\" size=\"30\"></p>\n";
133 $buf .= " <input type=\"submit\" name=\"changepass\" value=\"Êѹ¹\">\n";
134 $buf .= " <input type=\"hidden\" name=\"action\" value=\"ADMINUSER\">\n";
135 $buf .= " <input type=\"hidden\" name=\"id\" value=\"".&Util::escapeHTML($data->{id})."\">\n";
139 $buf .= "[<a href=\"". $wiki->create_url({ action=>"ADMINUSER" }) . "\">Ìá¤ë</a>]\n";
144 #==============================================================================
146 #==============================================================================
150 my $cgi = $wiki->get_CGI;
152 my $id = $cgi->param("id");
153 my $pass = $cgi->param("pass");
154 my $type = $cgi->param("type");
155 my $users = &Util::load_config_hash($wiki,$wiki->config('userdat_file'));
157 if(!defined($users->{$id})){
158 if($id eq "" || $pass eq "" || $type eq ""){
159 return $wiki->error("ID¡¢¥Ñ¥¹¥ï¡¼¥É¡¢¥æ¡¼¥¶¼ïÊ̤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
162 if($id eq "" || $type eq ""){
163 return $wiki->error("ID¡¢¥æ¡¼¥¶¼ïÊ̤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£");
166 unless($id =~ /^[a-zA-Z0-9\-_]+$/ && (!defined($pass) || $pass =~ /^[a-zA-Z0-9\-_]+/)){
167 return $wiki->error("ID¡¢¥Ñ¥¹¥ï¡¼¥É¤Ë¤ÏȾ³Ñ±Ñ¿ô»ú¤·¤«»ÈÍѤǤ¤Þ¤»¤ó¡£");
170 if(defined($users->{$id})){
171 ($pass) = split(/\t/,$users->{$id});
172 $users->{$id} = "$pass\t$type";
174 $users->{$id} = &Util::md5($pass,$id)."\t$type";
176 &Util::save_config_hash($wiki,$wiki->config('userdat_file'),$users);
178 $wiki->redirectURL( $wiki->create_url({ action=>"ADMINUSER"}) );
181 #==============================================================================
183 #==============================================================================
187 my $cgi = $wiki->get_CGI();
188 my $id = $cgi->param("id");
189 my $pass = $cgi->param("pass");
191 my $users = &Util::load_config_hash($wiki,$wiki->config('userdat_file'));
192 my ($p,$type) = split(/\t/,$users->{$id});
193 $users->{$id} = &Util::md5($pass,$id)."\t$type";
194 &Util::save_config_hash($wiki,$wiki->config('userdat_file'),$users);
196 $wiki->redirectURL( $wiki->create_url({ action=>"ADMINUSER"}) );
199 #==============================================================================
201 #==============================================================================
205 my $cgi = $wiki->get_CGI;
206 my $id = $cgi->param("delete");
208 my $users = &Util::load_config_hash($wiki,$wiki->config('userdat_file'));
210 foreach(sort(keys(%$users))){
212 $saveusers->{$_} = $users->{$_};
215 &Util::save_config_hash($wiki,$wiki->config('userdat_file'),$saveusers);
217 $wiki->redirectURL( $wiki->create_url({ action=>"ADMINUSER"}) );