/** * 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'); }
/** * 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; } }
/** * 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'); }