/**
 * 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);
 }
Example #3
0
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);
}