[ Index ] |
|
Code source de Phorum 5.1.25 |
1 <?php 2 3 //////////////////////////////////////////////////////////////////////////////// 4 // // 5 // Copyright (C) 2006 Phorum Development Team // 6 // http://www.phorum.org // 7 // // 8 // This program is free software. You can redistribute it and/or modify // 9 // it under the terms of either the current Phorum License (viewable at // 10 // phorum.org) or the Phorum License that was distributed with this file // 11 // // 12 // This program is distributed in the hope that it will be useful, // 13 // but WITHOUT ANY WARRANTY, without even the implied warranty of // 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // 15 // // 16 // You should have received a copy of the Phorum License // 17 // along with this program. // 18 //////////////////////////////////////////////////////////////////////////////// 19 20 if(!defined("PHORUM_ADMIN")) return; 21 22 include ('./include/format_functions.php'); 23 24 25 $error=""; 26 27 if(count($_POST)){ 28 29 30 if( isset($_POST['action']) && $_POST['action'] == "deleteUsers") { 31 32 $count=count($_POST['deleteIds']); 33 if($count > 0) { 34 foreach($_POST['deleteIds'] as $id => $deluid) { 35 phorum_user_delete($deluid); 36 } 37 phorum_admin_okmsg("$count User(s) deleted."); 38 } 39 40 } else { 41 42 $user_data=$_POST; 43 44 switch( $_POST["section"] ) { 45 46 47 case "forums": 48 49 if($_POST["new_forum"]){ 50 if(!is_array($_POST["new_forum_permissions"])){ 51 $permission=0; 52 } else { 53 $permission = 0; 54 foreach($_POST["new_forum_permissions"] as $perm=>$check){ 55 $permission = $permission | $perm; 56 } 57 } 58 59 $user_data["forum_permissions"][$_POST["new_forum"]]=$permission; 60 } 61 62 if(isset($_POST["delforum"])){ 63 foreach($_POST["delforum"] as $fid=>$val){ 64 unset($user_data["forum_permissions"][$fid]); 65 unset($_POST["forums"][$fid]); 66 } 67 } 68 69 if(isset($_POST["forums"])){ 70 foreach($_POST["forums"] as $forum_id){ 71 $permission=0; 72 73 if(isset($user_data["forum_permissions"][$forum_id])){ 74 foreach($user_data["forum_permissions"][$forum_id] as $perm=>$check){ 75 $permission = $permission | $perm; 76 } 77 } 78 79 $user_data["forum_permissions"][$forum_id]=$permission; 80 } 81 } 82 83 if(empty($user_data["forum_permissions"])) $user_data["forum_permissions"]=array(); 84 85 unset($user_data["delforum"]); 86 unset($user_data["new_forum"]); 87 unset($user_data["new_forum_permissions"]); 88 89 break; 90 91 case "groups": 92 $groupdata = array(); 93 94 if($_POST["new_group"]){ 95 // set the new group permission to approved 96 $groupdata[$_POST["new_group"]] = PHORUM_USER_GROUP_APPROVED; 97 } 98 99 if(isset($_POST["group_perm"])){ 100 foreach($_POST["group_perm"] as $group_id=>$perm){ 101 // as long as we aren't removing them from the group, accept other values 102 if ($perm != PHORUM_USER_GROUP_REMOVE){ 103 $groupdata[$group_id] = $perm; 104 } 105 } 106 } 107 108 phorum_user_save_groups($_POST["user_id"], $groupdata); 109 break; 110 } 111 112 if(isset($_POST['password1']) && !empty($_POST['password1']) && !empty($_POST['password2']) && $_POST['password1'] != $_POST['password2']) { 113 $error="Passwords don't match!"; 114 } elseif(!empty($_POST['password1']) && !empty($_POST['password2'])) { 115 $user_data['password']=$_POST['password1']; 116 $user_data['password_temp']=$_POST['password1']; 117 } 118 119 // clean up 120 unset($user_data["module"]); 121 unset($user_data["section"]); 122 unset($user_data["password1"]); 123 unset($user_data["password2"]); 124 125 if (empty($error)){ 126 $user_data = phorum_hook("admin_users_form_save", $user_data); 127 if (isset($user_data["error"])) { 128 $error = $user_data["error"]; 129 unset($user_data["error"]); 130 } 131 } 132 133 if(empty($error)){ 134 phorum_user_save($user_data); 135 phorum_admin_okmsg("User Saved"); 136 } 137 } 138 139 } 140 141 if ($error) { 142 phorum_admin_error($error); 143 } 144 145 include_once "./include/admin/PhorumInputForm.php"; 146 include_once "./include/profile_functions.php"; 147 include_once "./include/users.php"; 148 149 if(!defined("PHORUM_ORIGINAL_USER_CODE") || PHORUM_ORIGINAL_USER_CODE!==true){ 150 echo "Phorum User Admin only works with the Phorum User System."; 151 return; 152 } 153 154 if(!isset($_GET["edit"]) && !isset($_POST['section'])){ 155 156 if(empty($_REQUEST["user_id"])){ 157 158 $frm =& new PhorumInputForm ("", "get", "Search"); 159 160 $frm->addbreak("Phorum User Admin"); 161 162 $frm->hidden("module", "users"); 163 164 $frm->addrow("Search", "Username or email contains: " . $frm->text_box("search", $_REQUEST["search"], 30) . " • <a href=\"{$PHORUM["admin_http_path"]}?module=users&search=\">Find All Users</a>"); 165 166 $frm->addrow("", "Post count " . 167 $frm->select_tag("posts_op", array("gte" => ">=", "lte" => "<="), $_REQUEST["posts_op"]) . 168 $frm->text_box("posts", empty($_REQUEST["posts"]) ? "" : (int) $_REQUEST["posts"], 5) . 169 " and last active " . 170 // these are flipped because we're going back in time 171 $frm->select_tag("lastactive_op", array("gte" => "<=", "lte" => ">="), $_REQUEST["lastactive_op"]) . 172 $frm->text_box("lastactive", empty($_REQUEST["lastactive"]) ? "" : (int) $_REQUEST["lastactive"], 5) . " days ago"); 173 $frm->show(); 174 } 175 176 ?> 177 <hr class=\"PhorumAdminHR\" /> 178 179 <script type="text/javascript"> 180 <!-- 181 function CheckboxControl(form, onoff) { 182 for (var i = 0; i < form.elements.length; i++) 183 if (form.elements[i].type == "checkbox") 184 form.elements[i].checked = onoff; 185 } 186 // --> 187 </script> 188 <?php 189 190 $search=$_REQUEST["search"]; 191 192 $url_safe_search=urlencode($_REQUEST["search"]); 193 $url_safe_search.="&posts=".urlencode($_REQUEST["posts"]); 194 $url_safe_search.="&posts_op=".urlencode($_REQUEST["posts_op"]); 195 $url_safe_search.="&lastactive=".urlencode($_REQUEST["lastactive"]); 196 $url_safe_search.="&lastactive_op=".urlencode($_REQUEST["lastactive_op"]); 197 198 $users=phorum_db_search_users($_REQUEST["search"]); 199 200 if (isset($_REQUEST["posts"]) && $_REQUEST["posts"] != "" && $_REQUEST["posts"] >= 0) { 201 $cmpfn = phorum_admin_gen_compare($_REQUEST["posts_op"]); 202 $users = phorum_admin_filter_arr($users, "posts", $_REQUEST["posts"], $cmpfn); 203 } 204 205 if(isset($_REQUEST["lastactive"]) && $_REQUEST["lastactive"] != "" && $_REQUEST["lastactive"] >= 0) { 206 $time = time() - ($_REQUEST["lastactive"] * 86400); 207 $cmpfn = phorum_admin_gen_compare($_REQUEST["lastactive_op"]); 208 $users = phorum_admin_filter_arr($users, "date_last_active", $time, $cmpfn); 209 } 210 211 $total=count($users); 212 213 // count active 214 $total_active=0; 215 $total_poster=0; 216 foreach($users as $user){ 217 if ($user['active']==1) { 218 $total_active++; 219 if (intval($user['posts'])) $total_poster++; 220 } 221 } 222 223 224 settype($_REQUEST["start"], "integer"); 225 226 $display=30; 227 228 $users=array_slice($users, $_REQUEST["start"], $display); 229 230 if(count($users)) { 231 232 $nav=""; 233 234 if($_REQUEST["start"]>0){ 235 $old_start=$_REQUEST["start"]-$display; 236 $nav.="<a href=\"{$PHORUM["admin_http_path"]}?module=users&search=$url_safe_search&start=$old_start\">Previous Page</a>"; 237 } 238 239 $nav.=" "; 240 241 if($_REQUEST["start"]+$display<$total){ 242 $new_start=$_REQUEST["start"]+$display; 243 $nav.="<a href=\"{$PHORUM["admin_http_path"]}?module=users&search=$url_safe_search&start=$new_start\">Next Page</a>"; 244 } 245 246 echo <<<EOT 247 <form name="UsersForm" action="{$PHORUM["admin_http_path"]}" method="post"> 248 <input type="hidden" name="module" value="users"> 249 <input type="hidden" name="action" value="deleteUsers"> 250 <table border="0" cellspacing="1" cellpadding="0" 251 class="PhorumAdminTable" width="100%"> 252 <tr> 253 <td>$total users found ($total_active active, $total_poster posting)</td> 254 <td colspan="3">Showing $display users at a time 255 <td colspan="2" align="right">$nav</td> 256 </tr> 257 <tr> 258 <td class="PhorumAdminTableHead">User</td> 259 <td class="PhorumAdminTableHead">Email</td> 260 <td class="PhorumAdminTableHead">Status</td> 261 <td class="PhorumAdminTableHead">Posts</td> 262 <td class="PhorumAdminTableHead">Last Activity</td> 263 <td class="PhorumAdminTableHead">Delete</td> 264 </tr> 265 EOT; 266 267 foreach($users as $user){ 268 269 switch($user['active']){ 270 271 case PHORUM_USER_ACTIVE: 272 $status = "Active"; 273 break; 274 275 case PHORUM_USER_PENDING_EMAIL: 276 case PHORUM_USER_PENDING_BOTH: 277 $status = "Pending Confirmation"; 278 break; 279 280 case PHORUM_USER_PENDING_MOD: 281 $status = "Pending Moderator Approval"; 282 283 default: 284 $status = "Deactivated"; 285 } 286 287 $posts = intval($user['posts']); 288 289 $ta_class = "PhorumAdminTableRow".($ta_class == "PhorumAdminTableRow" ? "Alt" : ""); 290 291 echo "<tr>\n"; 292 echo " <td class=\"".$ta_class."\"><a href=\"{$PHORUM["admin_http_path"]}?module=users&user_id={$user['user_id']}&edit=1\">".htmlspecialchars($user['username'])."</a></td>\n"; 293 echo " <td class=\"".$ta_class."\">".htmlspecialchars($user['email'])."</td>\n"; 294 echo " <td class=\"".$ta_class."\">{$status}</td>\n"; 295 echo " <td class=\"".$ta_class."\" style=\"text-align:right\">{$posts}</td>\n"; 296 echo " <td class=\"".$ta_class."\" align=\"right\">".(intval($user['date_last_active']) ? strftime($PHORUM['short_date'], intval($user['date_last_active'])) : " ")."</td>\n"; 297 echo " <td class=\"".$ta_class."\"><input type=\"checkbox\" name=\"deleteIds[]\" value=\"{$user['user_id']}\"></td>\n"; 298 echo "</tr>\n"; 299 } 300 301 echo <<<EOT 302 <tr> 303 <td colspan="6" align="right"> 304 <input type="button" value="Check All" 305 onClick="CheckboxControl(this.form, true);"> 306 <input type="button" value="Clear All" 307 onClick="CheckboxControl(this.form, false);"> 308 <input type="submit" name="submit" value="Delete Selected Users" 309 onClick="return confirm('Really delete the selected user(s)?')"> 310 </td> 311 </tr> 312 </table> 313 </form> 314 EOT; 315 316 } else { 317 318 echo "No Users Found."; 319 320 } 321 322 } 323 324 // display edit form 325 if(isset($_REQUEST["user_id"])){ 326 327 $user=phorum_user_get($_REQUEST["user_id"]); 328 329 if(count($user)){ 330 331 $frm =& new PhorumInputForm ("", "post", "Update"); 332 333 $frm->hidden("module", "users"); 334 335 $frm->hidden("section", "main"); 336 337 $frm->hidden("user_id", $_REQUEST["user_id"]); 338 339 $frm->addbreak("Edit User"); 340 341 $frm->addrow("User Name", htmlspecialchars($user["username"])." <a href=\"#forums\">Edit Forum Permissions</a> <a href=\"#groups\">Edit Groups</a>"); 342 343 $frm->addrow("Email", $frm->text_box("email", $user["email"], 50)); 344 $frm->addrow("Password (Enter to change)", $frm->text_box("password1","")); 345 $frm->addrow("Password (Confirmation)", $frm->text_box("password2","")); 346 347 348 $frm->addrow("Signature", $frm->textarea("signature", $user["signature"])); 349 350 $frm->addrow("Active", $frm->select_tag("active", array("No", "Yes"), $user["active"])); 351 352 $frm->addrow("Administrator", $frm->select_tag("admin", array("No", "Yes"), $user["admin"])); 353 354 $frm->addrow("Registration Date", phorum_date("%m/%d/%Y %I:%M%p",$user['date_added'])); 355 356 $row=$frm->addrow("Date last active", phorum_date("%m/%d/%Y %I:%M%p",$user['date_last_active'])); 357 358 $frm->addhelp($row, "Date last active", "This shows the date, when the user was last seen in the forum. Check your setting on \"Track user usage\" in the \"General Settings\". As long as this setting is not enabled, the activity will not be tracked."); 359 360 phorum_hook("admin_users_form", $frm, $user); 361 362 $frm->show(); 363 364 echo "<br /><hr class=\"PhorumAdminHR\" /><br /><a name=\"forums\"></a>"; 365 366 $frm =& new PhorumInputForm ("", "post", "Update"); 367 368 $frm->hidden("user_id", $_REQUEST["user_id"]); 369 370 $frm->hidden("module", "users"); 371 372 $frm->hidden("section", "forums"); 373 374 $row=$frm->addbreak("Edit Forum Permissions"); 375 376 $frm->addhelp($row, "Forum Permissions", "These are permissions set exclusively for this user. You need to grant all permisssions you want the user to have for a forum here. No permissions from groups or a forum's properties will be used once the user has specific permissions for a forum."); 377 378 $forums=phorum_db_get_forums(); 379 380 $forumpaths = phorum_get_forum_info(1); 381 382 $perm_frm = $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_READ."]", 1, "Read")." ". 383 $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_REPLY."]", 1, "Reply")." ". 384 $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_NEW_TOPIC."]", 1, "Create New Topics")." ". 385 $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_EDIT."]", 1, "Edit Their Posts")."<br />". 386 $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files")."<br />". 387 $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_MODERATE_MESSAGES."]", 1, "Moderate Messages")." ". 388 $frm->checkbox("new_forum_permissions[".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users")." "; 389 390 $arr[]="Add A Forum..."; 391 392 foreach($forumpaths as $forum_id=>$forumname){ 393 if(!isset($user["forum_permissions"][$forum_id]) && $forums[$forum_id]['folder_flag'] == 0) 394 $arr[$forum_id]=$forumname; 395 } 396 if(count($arr)>1) 397 $frm->addrow($frm->select_tag("new_forum", $arr), $perm_frm); 398 399 400 if(is_array($user["forum_permissions"])){ 401 foreach($user["forum_permissions"] as $forum_id=>$perms){ 402 $perm_frm = $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_READ."]", 1, "Read", ($perms & PHORUM_USER_ALLOW_READ))." ". 403 $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_REPLY."]", 1, "Reply", ($perms & PHORUM_USER_ALLOW_REPLY))." ". 404 $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_NEW_TOPIC."]", 1, "Create New Topics", ($perms & PHORUM_USER_ALLOW_NEW_TOPIC))." ". 405 $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_EDIT."]", 1, "Edit Their Posts", ($perms & PHORUM_USER_ALLOW_EDIT))."<br />". 406 $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files", ($perms & PHORUM_USER_ALLOW_ATTACH))."<br />". 407 $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_MODERATE_MESSAGES."]", 1, "Moderate Messages", ($perms & PHORUM_USER_ALLOW_MODERATE_MESSAGES))." ". 408 $frm->checkbox("forum_permissions[$forum_id][".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users", ($perms & PHORUM_USER_ALLOW_MODERATE_USERS))." ". 409 410 $frm->hidden("forums[$forum_id]", $forum_id); 411 412 $row=$frm->addrow($forumpaths[$forum_id]."<br />".$frm->checkbox("delforum[$forum_id]", 1, "Delete"), $perm_frm); 413 414 } 415 } 416 417 $frm->show(); 418 419 echo "<br /><hr class=\"PhorumAdminHR\" /><br /><a name=\"groups\"></a>"; 420 421 $frm =& new PhorumInputForm ("", "post", "Update"); 422 423 $frm->hidden("user_id", $_REQUEST["user_id"]); 424 425 $frm->hidden("module", "users"); 426 427 $frm->hidden("section", "groups"); 428 429 $extra_opts = ""; 430 // if its an admin, let the user know that the admin will be able to act as a moderator no matter what 431 if ($user["admin"]){ 432 $row=$frm->addbreak("Edit Groups (Admins can act as a moderator of every group, regardless of these values)"); 433 } 434 else{ 435 $row=$frm->addbreak("Edit Groups"); 436 } 437 438 $groups= phorum_db_get_groups(); 439 $usergroups = phorum_user_get_groups($_REQUEST["user_id"]); 440 441 $arr=array("Add A Group..."); 442 foreach($groups as $group_id=>$group){ 443 if(!isset($usergroups[$group_id])) 444 $arr[$group_id]=$group["name"]; 445 } 446 447 if(count($arr)>1) 448 $frm->addrow("Add A Group", $frm->select_tag("new_group", $arr)); 449 450 if(is_array($usergroups)){ 451 $group_options = array(PHORUM_USER_GROUP_REMOVE => "< Remove User From Group >", 452 PHORUM_USER_GROUP_SUSPENDED => "Suspended", 453 PHORUM_USER_GROUP_UNAPPROVED => "Unapproved", 454 PHORUM_USER_GROUP_APPROVED => "Approved", 455 PHORUM_USER_GROUP_MODERATOR => "Group Moderator"); 456 foreach($usergroups as $group_id => $group_perm){ 457 $group_info = phorum_db_get_groups($group_id); 458 $frm->hidden("groups[$group_id]", "$group_id"); 459 $frm->addrow($group_info[$group_id]["name"], $frm->select_tag("group_perm[$group_id]", $group_options, $group_perm, $extra_opts)); 460 } 461 } 462 463 $frm->show(); 464 465 } else { 466 467 echo "User Not Found."; 468 469 } 470 471 } 472 473 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Nov 29 12:22:27 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |