/**
  * Delete all group membership information for the specified user
  *
  * @global object $bp BuddyPress global settings
  * @global wpdb $wpdb WordPress database object
  * @param int $user_id
  * @since 1.0
  * @uses BP_Groups_Member
  */
 function delete_all_for_user($user_id)
 {
     global $bp, $wpdb;
     // Get all the group ids for the current user's groups and update counts
     $group_ids = BP_Groups_Member::get_group_ids($user_id);
     foreach ($group_ids['groups'] as $group_id) {
         groups_update_groupmeta($group_id, 'total_member_count', groups_get_total_member_count($group_id) - 1);
         // If current user is the creator of a group and is the sole admin, delete that group to avoid counts going out-of-sync
         if (groups_is_user_admin($user_id, $group_id) && count(groups_get_group_admins($group_id)) < 2 && groups_is_user_creator($user_id, $group_id)) {
             groups_delete_group($group_id);
         }
     }
     return $wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d", $user_id));
 }
Example #2
0
/**
 * Is the current user the creator of the current group
 *
 * @since bbPress (r4632)
 *
 * @uses is_user_logged_in()
 * @uses bp_is_group()
 * @uses bbpress()
 * @uses get_current_user_id()
 * @uses bp_get_current_group_id()
 * @uses groups_is_user_admin()
 * @return bool If current user the creator of the current group
 */
function bbp_group_is_creator()
{
    // Bail if user is not logged in or not looking at a group
    if (!is_user_logged_in() || !bp_is_group()) {
        return false;
    }
    $bbp = bbpress();
    // Set the global if not set
    if (!isset($bbp->current_user->is_group_creator)) {
        $bbp->current_user->is_group_creator = groups_is_user_creator(get_current_user_id(), bp_get_current_group_id());
    }
    // Return the value
    return (bool) $bbp->current_user->is_group_creator;
}
/**
 * Check the current user's capability to edit an avatar for a given object.
 *
 * @since  2.3.0
 *
 * @param  string $capability The capability to check.
 * @param  array  $args       An array containing the item_id and the object to check.
 *
 * @return bool
 */
function bp_attachments_current_user_can($capability, $args = array())
{
    $can = false;
    if ('edit_avatar' === $capability || 'edit_cover_image' === $capability) {
        /**
         * Needed avatar arguments are set.
         */
        if (isset($args['item_id']) && isset($args['object'])) {
            // Group profile photo
            if (bp_is_active('groups') && 'group' === $args['object']) {
                if (bp_is_group_create()) {
                    $can = (bool) groups_is_user_creator(bp_loggedin_user_id(), $args['item_id']) || bp_current_user_can('bp_moderate');
                } else {
                    $can = (bool) groups_is_user_admin(bp_loggedin_user_id(), $args['item_id']) || bp_current_user_can('bp_moderate');
                }
                // User profile photo
            } elseif (bp_is_active('xprofile') && 'user' === $args['object']) {
                $can = bp_loggedin_user_id() === (int) $args['item_id'] || bp_current_user_can('bp_moderate');
            }
            /**
             * No avatar arguments, fallback to bp_user_can_create_groups()
             * or bp_is_item_admin()
             */
        } else {
            if (bp_is_group_create()) {
                $can = bp_user_can_create_groups();
            } else {
                $can = bp_is_item_admin();
            }
        }
    }
    return apply_filters('bp_attachments_current_user_can', $can, $capability, $args);
}
function wangguard_spam_all_data($user_id)
{
    global $wpdb, $bp;
    $wpdb->query($wpdb->prepare("DELETE FROM {$bp->blogs->table_name} WHERE user_id = %d", $user_id));
    friends_remove_data($user_id);
    $group_ids = BP_Groups_Member::get_group_ids($user_id);
    foreach ($group_ids['groups'] as $group_id) {
        groups_update_groupmeta($group_id, 'total_member_count', groups_get_total_member_count($group_id) - 1);
        // If current user is the creator of a group and is the sole admin, delete that group to avoid counts going out-of-sync
        if (groups_is_user_admin($user_id, $group_id) && count(groups_get_group_admins($group_id)) < 2 && groups_is_user_creator($user_id, $group_id)) {
            groups_delete_group($group_id);
        }
    }
    return $wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d", $user_id));
    BP_Groups_Member::delete_all_for_user($user_id);
}