Exemple #1
0
 function change_role_ajax()
 {
     global $bp;
     if (bp_gtm_change_user_role($_GET['user'], $_GET['role'], $bp->groups->current_group->id)) {
         echo '1';
     } else {
         echo '0';
     }
     die;
 }
function bp_gtm_import_users()
{
    global $wpdb, $bp;
    // get all groups to work with
    $groups = $wpdb->get_results($wpdb->prepare("SELECT id FROM {$bp->groups->table_name}"));
    // get all users for all groups, group them according to their roles
    foreach ($groups as $group) {
        $admins[$group->id] = $wpdb->get_results($wpdb->prepare("SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_admin = 1 AND is_banned = 0", $group->id));
        $mods[$group->id] = $wpdb->get_results($wpdb->prepare("SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_mod = 1 AND is_banned = 0", $group->id));
        $members[$group->id] = $wpdb->get_results($wpdb->prepare("SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_mod = 0 AND is_admin = 0 AND is_banned = 0", $group->id));
    }
    // import all admins
    foreach ((array) $admins as $group_id => $users) {
        if (empty($users)) {
            $done_admins = true;
            continue;
        }
        foreach ($users as $user) {
            if (empty($user)) {
                continue;
            }
            $done_admins = bp_gtm_change_user_role($user->user_id, $_POST['import_group_admins'], $group_id, $importer = true);
        }
    }
    // import all mods
    foreach ((array) $mods as $group_id => $users) {
        if (empty($users)) {
            $done_mods = true;
            continue;
        }
        foreach ($users as $user) {
            if (empty($user)) {
                continue;
            }
            $done_mods = bp_gtm_change_user_role($user->user_id, $_POST['import_group_mods'], $group_id, $importer = true);
        }
    }
    // import all usual members
    foreach ((array) $members as $group_id => $users) {
        if (empty($users)) {
            $done_members = true;
            continue;
        }
        foreach ($users as $user) {
            if (empty($user)) {
                continue;
            }
            $done_members = bp_gtm_change_user_role($user->user_id, $_POST['import_group_members'], $group_id, $importer = true);
        }
    }
    // display appropriate message
    if ($done_admins && $done_mods && $done_members) {
        echo "<div id='message' class='updated fade'><p>" . __('All users from all groups were successfully imported', 'bp_gtm') . "</p></div>";
    } else {
        echo "<div id='message' class='error'><p>" . __('Some error occured while importing users. Perhaps, you have already imported all of them?', 'bp_gtm') . "</p></div>";
    }
}
function bp_gtm_change_user_group_role($resps, $id, $task_id = 0)
{
    global $wpdb, $bp;
    $group_id = bp_get_current_group_id();
    bp_gtm_save_g_resps($task_id, $id, $group_id, $resps);
    foreach ($resps as $value) {
        $resp_id = bp_core_get_userid($value);
        $exist = $wpdb->query($wpdb->prepare("\n            SELECT id\n            FROM {$bp->gtm->table_roles_caps}\n            WHERE `group_id` = {$group_id} AND `user_id` = {$resp_id}"));
        if (!$exist) {
            bp_gtm_change_user_role($resp_id, 3, $_POST['project_group']);
        }
    }
}