| [ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * MyBB 1.6 4 * Copyright 2010 MyBB Group, All Rights Reserved 5 * 6 * Website: http://mybb.com 7 * License: http://mybb.com/about/license 8 * 9 * $Id: managegroup.php 5297 2010-12-28 22:01:14Z Tomm $ 10 */ 11 12 define("IN_MYBB", 1); 13 define('THIS_SCRIPT', 'managegroup.php'); 14 15 $templatelist = "managegroup_leaders_bit, managegroup_leaders, postbit_pm, postbit_email, managegroup_user_checkbox, managegroup_user, managegroup_adduser, managegroup_removeusers, managegroup,managegroup_joinrequests_request, managegroup_joinrequests"; 16 17 require_once "./global.php"; 18 19 // Load language files 20 $lang->load("managegroup"); 21 22 $gid = $mybb->input['gid'] = intval($mybb->input['gid']); 23 $usergroup = $groupscache[$mybb->input['gid']]; 24 if(!$usergroup['gid']) 25 { 26 error($lang->invalid_group); 27 } 28 $lang->nav_group_management = $lang->sprintf($lang->nav_group_management, $usergroup['title']); 29 add_breadcrumb($lang->nav_group_memberships, "usercp.php?action=usergroups"); 30 add_breadcrumb($lang->nav_group_management, "managegroup.php?gid=$gid"); 31 32 if($mybb->input['action'] == "joinrequests") 33 { 34 add_breadcrumb($lang->nav_join_requests); 35 } 36 37 // Check that this user is actually a leader of this group 38 $query = $db->simple_select("groupleaders", "*", "uid='{$mybb->user['uid']}' AND gid='{$gid}'"); 39 $groupleader = $db->fetch_array($query); 40 if(!$groupleader['uid'] && $mybb->user['cancp'] != 1) 41 { 42 error($lang->not_leader_of_this_group); 43 } 44 45 if($mybb->input['action'] == "do_add" && $mybb->request_method == "post") 46 { 47 // Verify incoming POST request 48 verify_post_check($mybb->input['my_post_key']); 49 50 if($groupleader['canmanagemembers'] == 0) 51 { 52 error_no_permission(); 53 } 54 $query = $db->simple_select("users", "uid, additionalgroups, usergroup", "username = '".$db->escape_string($mybb->input['username'])."'", array("limit" => 1)); 55 $user = $db->fetch_array($query); 56 if($user['uid']) 57 { 58 $additionalgroups = explode(',', $user['additionalgroups']); 59 if ($user['usergroup'] != $gid && !in_array($gid, $additionalgroups)) 60 { 61 join_usergroup($user['uid'], $gid); 62 redirect("managegroup.php?gid=".$gid, $lang->user_added); 63 } 64 else 65 { 66 error($lang->error_alreadyingroup); 67 } 68 } 69 else 70 { 71 error($lang->error_invalidusername); 72 } 73 } 74 elseif($mybb->input['action'] == "do_joinrequests" && $mybb->request_method == "post") 75 { 76 // Verify incoming POST request 77 verify_post_check($mybb->input['my_post_key']); 78 79 if($groupleader['canmanagerequests'] == 0) 80 { 81 error_no_permission(); 82 } 83 84 $plugins->run_hooks("managegroup_do_joinrequests_start"); 85 86 if(is_array($mybb->input['request'])) 87 { 88 foreach($mybb->input['request'] as $uid => $what) 89 { 90 if($what == "accept") 91 { 92 join_usergroup($uid, $gid); 93 $uidin[] = intval($uid); 94 } 95 elseif($what == "decline") 96 { 97 $uidin[] = intval($uid); 98 } 99 } 100 } 101 if(is_array($uidin)) 102 { 103 $uids = implode(",", $uidin); 104 $db->delete_query("joinrequests", "uid IN ({$uids}) AND gid='{$gid}'"); 105 } 106 107 $plugins->run_hooks("managegroup_do_joinrequests_end"); 108 109 redirect("usercp.php?action=usergroups", $lang->join_requests_moderated); 110 } 111 elseif($mybb->input['action'] == "joinrequests") 112 { 113 $users = ""; 114 $plugins->run_hooks("managegroup_joinrequests_start"); 115 116 $query = $db->query(" 117 SELECT j.*, u.uid, u.username, u.postnum, u.regdate 118 FROM ".TABLE_PREFIX."joinrequests j 119 LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=j.uid) 120 WHERE j.gid='".$mybb->input['gid']."' AND j.uid != 0 121 ORDER BY u.username ASC 122 "); 123 while($user = $db->fetch_array($query)) 124 { 125 $user['reason'] = htmlspecialchars_uni($user['reason']); 126 $altbg = alt_trow(); 127 $regdate = my_date($mybb->settings['dateformat'], $user['regdate']); 128 $user['profilelink'] = build_profile_link($user['username'], $user['uid']); 129 eval("\$users .= \"".$templates->get("managegroup_joinrequests_request")."\";"); 130 } 131 if(!$users) 132 { 133 error($lang->no_requests); 134 } 135 $lang->join_requests = $lang->sprintf($lang->join_requests_title,htmlspecialchars_uni($usergroup['title'])); 136 137 $plugins->run_hooks("managegroup_joinrequests_end"); 138 139 eval("\$joinrequests = \"".$templates->get("managegroup_joinrequests")."\";"); 140 output_page($joinrequests); 141 } 142 elseif($mybb->input['action'] == "do_manageusers" && $mybb->request_method == "post") 143 { 144 // Verify incoming POST request 145 verify_post_check($mybb->input['my_post_key']); 146 147 if($groupleader['canmanagemembers'] == 0) 148 { 149 error_no_permission(); 150 } 151 152 $plugins->run_hooks("managegroup_do_manageusers_start"); 153 154 if(is_array($mybb->input['removeuser'])) 155 { 156 foreach($mybb->input['removeuser'] as $uid) 157 { 158 leave_usergroup($uid, $mybb->input['gid']); 159 } 160 } 161 else 162 { 163 error($lang->no_users_selected); 164 } 165 166 $plugins->run_hooks("managegroup_do_manageusers_end"); 167 168 redirect("usercp.php?action=usergroups", $lang->users_removed); 169 } 170 else 171 { 172 $plugins->run_hooks("managegroup_start"); 173 174 $lang->members_of = $lang->sprintf($lang->members_of, $usergroup['title']); 175 $lang->add_member = $lang->sprintf($lang->add_member, $usergroup['title']); 176 if($usergroup['type'] == 4) 177 { 178 $query = $db->simple_select("joinrequests", "COUNT(*) AS req", "gid='".$mybb->input['gid']."'"); 179 $numrequests = $db->fetch_array($query); 180 if($numrequests['req']) 181 { 182 $lang->num_requests_pending = $lang->sprintf($lang->num_requests_pending, $numrequests['req']); 183 eval("\$joinrequests = \"".$templates->get("managegroup_requestnote")."\";"); 184 } 185 $usergrouptype = $lang->group_public_moderated; 186 } 187 elseif($usergroup['type'] == 3) 188 { 189 $usergrouptype = $lang->group_public_not_moderated; 190 } 191 elseif($usergroup['type'] == 2) 192 { 193 $usergrouptype = $lang->group_private; 194 } 195 else 196 { 197 $usergrouptype = $lang->group_default; 198 } 199 200 // Display group leaders (if there is any) 201 $query = $db->query(" 202 SELECT g.*, u.username, u.usergroup, u.displaygroup 203 FROM ".TABLE_PREFIX."groupleaders g 204 LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=g.uid) 205 WHERE g.gid = '".$mybb->input['gid']."' 206 "); 207 if($db->num_rows($query)) 208 { 209 $loop = 1; 210 $leader_count = $db->num_rows($query); 211 while($leader = $db->fetch_array($query)) 212 { 213 $leader_name = format_name(htmlspecialchars_uni($leader['username']), $leader['usergroup'], $leader['displaygroup']); 214 $leader_profile_link = build_profile_link($leader_name, $leader['uid']); 215 216 // Get commas... 217 if($loop != $leader_count) 218 { 219 $comma = $lang->comma; 220 } 221 else 222 { 223 $comma = ''; 224 } 225 226 ++$loop; 227 eval("\$leaders .= \"".$templates->get("managegroup_leaders_bit")."\";"); 228 } 229 230 eval("\$group_leaders = \"".$templates->get("managegroup_leaders")."\";"); 231 } 232 233 switch($db->type) 234 { 235 case "pgsql": 236 case "sqlite": 237 $query = $db->simple_select("users", "*", "','||additionalgroups||',' LIKE '%,".$mybb->input['gid'].",%' OR usergroup='".$mybb->input['gid']."'", array('order_by' => 'username')); 238 break; 239 default: 240 $query = $db->simple_select("users", "*", "CONCAT(',',additionalgroups,',') LIKE '%,".$mybb->input['gid'].",%' OR usergroup='".$mybb->input['gid']."'", array('order_by' => 'username')); 241 } 242 243 $numusers = $db->num_rows($query); 244 /*if(!$numusers && !$numrequests) 245 { 246 error($lang->group_no_members); 247 }*/ 248 $perpage = $mybb->settings['membersperpage']; 249 if($page && $page > 0) 250 { 251 $start = ($page-1) *$perpage; 252 } 253 else 254 { 255 $start = 0; 256 $page = 1; 257 } 258 $multipage = multipage($numusers, $perpage, $page, "managegroup.php?gid=".$mybb->input['gid']); 259 $users = ""; 260 while($user = $db->fetch_array($query)) 261 { 262 $altbg = alt_trow(); 263 $regdate = my_date($mybb->settings['dateformat'].", ".$mybb->settings['timeformat'], $user['regdate']); 264 $post = $user; 265 $sendpm = $email = ''; 266 if($mybb->settings['enablepms'] == 1 && $post['receivepms'] != 0 && $mybb->usergroup['cansendpms'] == 1 && my_strpos(",".$post['ignorelist'].",", ",".$mybb->user['uid'].",") === false) 267 { 268 eval("\$sendpm = \"".$templates->get("postbit_pm")."\";"); 269 } 270 271 if($user['hideemail'] != 1) 272 { 273 eval("\$email = \"".$templates->get("postbit_email")."\";"); 274 } 275 else 276 { 277 $email = ''; 278 } 279 $query1 = $db->simple_select("groupleaders", "uid", "uid='{$user['uid']}' AND gid='{$gid}'"); 280 $isleader = $db->fetch_array($query1); 281 $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']); 282 $user['profilelink'] = build_profile_link($user['username'], $user['uid']); 283 if($isleader['uid']) 284 { 285 $leader = $lang->leader; 286 } 287 else 288 { 289 $leader = ''; 290 } 291 292 // Checkbox for user management - only if current user is allowed 293 $checkbox = ''; 294 if($groupleader['canmanagemembers'] == 1) 295 { 296 eval("\$checkbox = \"".$templates->get("managegroup_user_checkbox")."\";"); 297 } 298 299 eval("\$users .= \"".$templates->get("managegroup_user")."\";"); 300 } 301 302 $add_user = ''; 303 $remove_users = ''; 304 if($groupleader['canmanagemembers'] == 1) 305 { 306 eval("\$add_user = \"".$templates->get("managegroup_adduser")."\";"); 307 eval("\$remove_users = \"".$templates->get("managegroup_removeusers")."\";"); 308 } 309 310 $plugins->run_hooks("managegroup_end"); 311 312 eval("\$manageusers = \"".$templates->get("managegroup")."\";"); 313 output_page($manageusers); 314 } 315 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sun Jan 1 10:49:49 2012 | Cross-referenced by PHPXref 0.7.1 |