Example #1
0
/**
 * Remove capabilities from WordPress user roles.
 *
 * This is called on plugin deactivation.
 *
 * @since BuddyPress (1.6.0)
 *
 * @uses get_role() To get the administrator and default roles.
 * @uses WP_Role::remove_cap() To remove various capabilities.
 * @uses do_action() Calls 'bp_remove_caps'.
 */
function bp_remove_caps()
{
    global $wp_roles;
    // Load roles if not set
    if (!isset($wp_roles)) {
        $wp_roles = new WP_Roles();
    }
    // Loop through available roles and remove them
    foreach ($wp_roles->role_objects as $role) {
        foreach (bp_get_caps_for_role($role->name) as $cap) {
            $role->remove_cap($cap);
        }
    }
    do_action('bp_remove_caps');
}
Example #2
0
/**
 * Add the default role and mapped BuddyPress caps to the current user if needed
 *
 * This function will bail if the community is not global in a multisite
 * installation of WordPress, or if the user is marked as spam or deleted.
 *
 * @since BuddyPress (1.6)
 *
 * @uses is_multisite()
 * @uses bp_allow_global_access()
 * @uses bp_is_user_inactive()
 * @uses is_user_logged_in()
 * @uses current_user_can()
 * @uses get_option()
 * @uses bp_get_caps_for_role()
 *
 * @global BuddyPress $bbp
 * @return If not multisite, not global, or user is deleted/spammed
 */
function bp_global_access_role_mask()
{
    // Bail if not multisite or community is not global
    if (!is_multisite() || !bp_allow_global_access()) {
        return;
    }
    // Bail if user is marked as spam or is deleted
    if (bp_is_user_inactive()) {
        return;
    }
    // Normal user is logged in but has no caps
    if (is_user_logged_in() && !current_user_can('read')) {
        // Define local variable
        $mapped_meta_caps = array();
        // Assign user the minimal participant role to map caps to
        $default_role = bp_get_participant_role();
        // Get BuddyPress caps for the default role
        $caps_for_role = bp_get_caps_for_role($default_role);
        // Set all caps to true
        foreach ($caps_for_role as $cap) {
            $mapped_meta_caps[$cap] = true;
        }
        // Add 'read' cap just in case
        $mapped_meta_caps['read'] = true;
        $mapped_meta_caps['bp_masked'] = true;
        // Allow global access caps to be manipulated
        $mapped_meta_caps = apply_filters('bp_global_access_mapped_meta_caps', $mapped_meta_caps);
        // Assign the role and mapped caps to the current user
        global $bp;
        $bp->current_user->roles[0] = $default_role;
        $bp->current_user->caps = $mapped_meta_caps;
        $bp->current_user->allcaps = $mapped_meta_caps;
    }
}
Example #3
0
/**
 * Remove capabilities from WordPress user roles.
 *
 * This is called on plugin deactivation.
 *
 * @since BuddyPress (1.6.0)
 *
 * @uses get_role() To get the administrator and default roles.
 * @uses WP_Role::remove_cap() To remove various capabilities.
 * @uses do_action() Calls 'bp_remove_caps'.
 */
function bp_remove_caps()
{
    global $wp_roles;
    // Load roles if not set
    if (!isset($wp_roles)) {
        $wp_roles = new WP_Roles();
    }
    // Loop through available roles and remove them
    foreach ($wp_roles->role_objects as $role) {
        foreach (bp_get_caps_for_role($role->name) as $cap) {
            $role->remove_cap($cap);
        }
    }
    /**
     * Fires after the removal of capabilities from WordPress user roles.
     *
     * This is called on plugin deactivation.
     *
     * @since BuddyPress (1.6.0)
     */
    do_action('bp_remove_caps');
}