/** * Setup all default roles and associate them with capabilities * * @since 0.7.2 * * @param BP_Roles $roles Roles object to add default roles to */ function bb_init_roles(&$roles) { $roles->add_role('keymaster', __('Key Master'), array('use_keys' => true, 'administrate' => true, 'moderate' => true, 'participate' => true, 'keep_gate' => true, 'import_export' => true, 'recount' => true, 'manage_options' => true, 'manage_themes' => true, 'manage_plugins' => true, 'manage_options' => true, 'edit_users' => true, 'manage_tags' => true, 'edit_others_favorites' => true, 'manage_forums' => true, 'delete_forums' => true, 'delete_topics' => true, 'close_topics' => true, 'stick_topics' => true, 'move_topics' => true, 'view_by_ip' => true, 'edit_closed' => true, 'edit_deleted' => true, 'browse_deleted' => true, 'edit_others_tags' => true, 'edit_others_topics' => true, 'delete_posts' => true, 'throttle' => true, 'ignore_edit_lock' => true, 'edit_others_posts' => true, 'edit_favorites' => true, 'edit_tags' => true, 'edit_topics' => true, 'edit_posts' => true, 'edit_profile' => true, 'write_topics' => true, 'write_posts' => true, 'change_password' => true, 'read' => true)); $roles->add_role('administrator', __('Administrator'), array('administrate' => true, 'moderate' => true, 'participate' => true, 'edit_users' => true, 'edit_others_favorites' => true, 'manage_forums' => true, 'delete_forums' => true, 'manage_tags' => true, 'delete_topics' => true, 'close_topics' => true, 'stick_topics' => true, 'move_topics' => true, 'view_by_ip' => true, 'edit_closed' => true, 'edit_deleted' => true, 'browse_deleted' => true, 'edit_others_tags' => true, 'edit_others_topics' => true, 'delete_posts' => true, 'throttle' => true, 'ignore_edit_lock' => true, 'edit_others_posts' => true, 'edit_favorites' => true, 'edit_tags' => true, 'edit_topics' => true, 'edit_posts' => true, 'edit_profile' => true, 'write_topics' => true, 'write_posts' => true, 'change_password' => true, 'read' => true)); $roles->add_role('moderator', __('Moderator'), array('moderate' => true, 'participate' => true, 'manage_tags' => true, 'delete_topics' => true, 'close_topics' => true, 'stick_topics' => true, 'move_topics' => true, 'view_by_ip' => true, 'edit_closed' => true, 'edit_deleted' => true, 'browse_deleted' => true, 'edit_others_tags' => true, 'edit_others_topics' => true, 'delete_posts' => true, 'throttle' => true, 'ignore_edit_lock' => true, 'edit_others_posts' => true, 'edit_favorites' => true, 'edit_tags' => true, 'edit_topics' => true, 'edit_posts' => true, 'edit_profile' => true, 'write_topics' => true, 'write_posts' => true, 'change_password' => true, 'read' => true)); $roles->add_role('member', __('Member'), array('participate' => true, 'edit_favorites' => true, 'edit_tags' => true, 'edit_topics' => true, 'edit_posts' => true, 'edit_profile' => true, 'write_topics' => true, 'write_posts' => true, 'change_password' => true, 'read' => true)); $roles->add_role('inactive', __('Inactive'), array('change_password' => true, 'read' => true)); $roles->add_role('blocked', __('Blocked'), array('not_play_nice' => true)); }
/** * Retrieve all of the role capabilities and merge with individual capabilities. * * All of the capabilities of the roles the user belongs to are merged with * the users individual roles. This also means that the user can be denied * specific roles that their role might have, but the specific user isn't * granted permission to. * * @since 2.0.0 * @uses $wp_roles * @access public */ function get_role_caps() { global $wp_roles, $wp_users_object; if (!isset($wp_roles)) { $wp_roles = new BP_Roles($wp_users_object->db); } //Filter out caps that are not role names and assign to $this->roles if (is_array($this->caps)) { $this->roles = array_filter(array_keys($this->caps), array(&$wp_roles, 'is_role')); } //Build $allcaps from role caps, overlay user's $caps $this->allcaps = array(); foreach ((array) $this->roles as $role) { $role = $wp_roles->get_role($role); $this->allcaps = array_merge((array) $this->allcaps, (array) $role->capabilities); } $this->allcaps = array_merge((array) $this->allcaps, (array) $this->caps); }
function create_role($name, $display_name, $capabilities = array()) { global $wp_roles, $db; if (!isset($wp_roles)) { $wp_roles = new BP_Roles($db); } $wp_roles->add_role($name, $display_name, $capabilities); }