Ejemplo n.º 1
0
 /**
 Add a new member to the group
 */
 public function add_member($uid)
 {
     // Set display group
     $member = new GroupMember($this->mybb, $this->db, $this->cache);
     if ($member->initialize($uid)) {
         $user = $member->get_info();
         // If they are a pm of their old group, they won't be now!
         $this->demote_member($uid);
         // If they are in a group currently, remove it from additional
         leave_usergroup($user['uid'], $user['displaygroup']);
         // add new to additional groups
         join_usergroup($user['uid'], $this->info['gid']);
         $updatearray = array('displaygroup' => $this->info['gid'], 'group_dateline' => time());
         $member->update_member($updatearray);
         $member->update_rank($this->info['defaultrank']);
     }
 }
Ejemplo n.º 2
0
        error($lang->no_requests);
    }
    $lang->join_requests = $lang->sprintf($lang->join_requests_title, htmlspecialchars_uni($usergroup['title']));
    $plugins->run_hooks("managegroup_joinrequests_end");
    eval("\$joinrequests = \"" . $templates->get("managegroup_joinrequests") . "\";");
    output_page($joinrequests);
} elseif ($mybb->input['action'] == "do_manageusers" && $mybb->request_method == "post") {
    // Verify incoming POST request
    verify_post_check($mybb->get_input('my_post_key'));
    if ($groupleader['canmanagemembers'] == 0) {
        error_no_permission();
    }
    $plugins->run_hooks("managegroup_do_manageusers_start");
    if (is_array($mybb->get_input('removeuser', MyBB::INPUT_ARRAY))) {
        foreach ($mybb->get_input('removeuser', MyBB::INPUT_ARRAY) as $uid) {
            leave_usergroup($uid, $gid);
        }
    } else {
        error($lang->no_users_selected);
    }
    $plugins->run_hooks("managegroup_do_manageusers_end");
    redirect("managegroup.php?gid={$gid}", $lang->users_removed);
} else {
    $plugins->run_hooks("managegroup_start");
    $lang->members_of = $lang->sprintf($lang->members_of, htmlspecialchars_uni($usergroup['title']));
    $lang->add_member = $lang->sprintf($lang->add_member, htmlspecialchars_uni($usergroup['title']));
    $lang->invite_member = $lang->sprintf($lang->invite_member, htmlspecialchars_uni($usergroup['title']));
    $joinrequests = '';
    if ($usergroup['type'] == 5) {
        $usergrouptype = $lang->group_public_invite;
    } elseif ($usergroup['type'] == 4) {
Ejemplo n.º 3
0
 }
 $db->update_query("users", $updated_users, "usergroup='{$usergroup['gid']}'");
 $updated_users = array("displaygroup" => "usergroup");
 $plugins->run_hooks("admin_user_groups_delete_commit");
 $db->update_query("users", $updated_users, "displaygroup='{$usergroup['gid']}'", "", true);
 // No quotes = displaygroup=usergroup
 switch ($db->type) {
     case "pgsql":
     case "sqlite":
         $query = $db->simple_select("users", "uid", "','||additionalgroups||',' LIKE '%,{$usergroup['gid']},%'");
         break;
     default:
         $query = $db->simple_select("users", "uid", "CONCAT(',',additionalgroups,',') LIKE '%,{$usergroup['gid']},%'");
 }
 while ($user = $db->fetch_array($query)) {
     leave_usergroup($user['uid'], $usergroup['gid']);
 }
 $db->update_query("banned", array("gid" => 7), "gid='{$usergroup['gid']}'");
 $db->update_query("banned", array("oldgroup" => 2), "oldgroup='{$usergroup['gid']}'");
 $db->update_query("banned", array("olddisplaygroup" => "oldgroup"), "olddisplaygroup='{$usergroup['gid']}'", "", true);
 // No quotes = displaygroup=usergroup
 $db->delete_query("forumpermissions", "gid='{$usergroup['gid']}'");
 $db->delete_query("calendarpermissions", "gid='{$usergroup['gid']}'");
 $db->delete_query("joinrequests", "gid='{$usergroup['gid']}'");
 $db->delete_query("moderators", "id='{$usergroup['gid']}' AND isgroup='1'");
 $db->delete_query("groupleaders", "gid='{$usergroup['gid']}'");
 $db->delete_query("usergroups", "gid='{$usergroup['gid']}'");
 $plugins->run_hooks("admin_user_groups_delete_commit_end");
 $cache->update_groupleaders();
 $cache->update_moderators();
 $cache->update_usergroups();
Ejemplo n.º 4
0
 }
 // Leaving a group
 if ($mybb->get_input('leavegroup', MyBB::INPUT_INT)) {
     // Verify incoming POST request
     verify_post_check($mybb->input['my_post_key']);
     if (my_strpos($ingroups, "," . $mybb->get_input('leavegroup', MyBB::INPUT_INT) . ",") === false) {
         error($lang->not_member_of_group);
     }
     if ($mybb->user['usergroup'] == $mybb->get_input('leavegroup', MyBB::INPUT_INT)) {
         error($lang->cannot_leave_primary_group);
     }
     $usergroup = $usergroups[$mybb->get_input('leavegroup', MyBB::INPUT_INT)];
     if ($usergroup['type'] != 4 && $usergroup['type'] != 3 && $usergroup['type'] != 5) {
         error($lang->cannot_leave_group);
     }
     leave_usergroup($mybb->user['uid'], $mybb->get_input('leavegroup', MyBB::INPUT_INT));
     $plugins->run_hooks("usercp_usergroups_leave_group");
     redirect("usercp.php?action=usergroups", $lang->left_group);
     exit;
 }
 $groupleaders = array();
 // List of usergroup leaders
 $query = $db->query("\n\t\tSELECT g.*, u.username, u.displaygroup, u.usergroup, u.email, u.language\n\t\tFROM " . TABLE_PREFIX . "groupleaders g\n\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (u.uid=g.uid)\n\t\tORDER BY u.username ASC\n\t");
 while ($leader = $db->fetch_array($query)) {
     $groupleaders[$leader['gid']][$leader['uid']] = $leader;
 }
 // Joining a group
 if ($mybb->get_input('joingroup', MyBB::INPUT_INT)) {
     // Verify incoming POST request
     verify_post_check($mybb->get_input('my_post_key'));
     $usergroup = $usergroups[$mybb->get_input('joingroup', MyBB::INPUT_INT)];
Ejemplo n.º 5
0
 // Leaving a group
 if ($mybb->input['leavegroup']) {
     // Verify incoming POST request
     verify_post_check($mybb->input['my_post_key']);
     if (my_strpos($ingroups, "," . $mybb->input['leavegroup'] . ",") === false) {
         error($lang->not_member_of_group);
     }
     if ($mybb->user['usergroup'] == $mybb->input['leavegroup']) {
         error($lang->cannot_leave_primary_group);
     }
     $query = $db->simple_select("usergroups", "*", "gid='" . intval($mybb->input['leavegroup']) . "'");
     $usergroup = $db->fetch_array($query);
     if ($usergroup['type'] != 4 && $usergroup['type'] != 3) {
         error($lang->cannot_leave_group);
     }
     leave_usergroup($mybb->user['uid'], $mybb->input['leavegroup']);
     $plugins->run_hooks("usercp_usergroups_leave_group");
     redirect("usercp.php?action=usergroups", $lang->left_group);
     exit;
 }
 // Joining a group
 if ($mybb->input['joingroup']) {
     // Verify incoming POST request
     verify_post_check($mybb->input['my_post_key']);
     $mybb->input['joingroup'] = intval($mybb->input['joingroup']);
     $query = $db->simple_select("usergroups", "*", "gid='" . intval($mybb->input['joingroup']) . "'");
     $usergroup = $db->fetch_array($query);
     if ($usergroup['type'] != 4 && $usergroup['type'] != 3 || !$usergroup['gid']) {
         error($lang->cannot_join_group);
     }
     if (my_strpos($ingroups, "," . intval($mybb->input['joingroup']) . ",") !== false) {
Ejemplo n.º 6
0
        error($lang->no_requests);
    }
    $lang->join_requests = $lang->sprintf($lang->join_requests_title, htmlspecialchars_uni($usergroup['title']));
    $plugins->run_hooks("managegroup_joinrequests_end");
    eval("\$joinrequests = \"" . $templates->get("managegroup_joinrequests") . "\";");
    output_page($joinrequests);
} elseif ($mybb->input['action'] == "do_manageusers" && $mybb->request_method == "post") {
    // Verify incoming POST request
    verify_post_check($mybb->input['my_post_key']);
    if ($groupleader['canmanagemembers'] == 0) {
        error_no_permission();
    }
    $plugins->run_hooks("managegroup_do_manageusers_start");
    if (is_array($mybb->input['removeuser'])) {
        foreach ($mybb->input['removeuser'] as $uid) {
            leave_usergroup($uid, $mybb->input['gid']);
        }
    }
    $plugins->run_hooks("managegroup_do_manageusers_end");
    redirect("usercp.php?action=usergroups", $lang->users_removed);
} else {
    $plugins->run_hooks("managegroup_start");
    $lang->members_of = $lang->sprintf($lang->members_of, $usergroup['title']);
    $lang->add_member = $lang->sprintf($lang->add_member, $usergroup['title']);
    if ($usergroup['type'] == 4) {
        $query = $db->simple_select("joinrequests", "COUNT(*) AS req", "gid='" . $mybb->input['gid'] . "'");
        $numrequests = $db->fetch_array($query);
        if ($numrequests['req']) {
            $lang->num_requests_pending = $lang->sprintf($lang->num_requests_pending, $numrequests['req']);
            eval("\$joinrequests = \"" . $templates->get("managegroup_requestnote") . "\";");
        }