Skip to:
Content
Pages
Categories
Search
Top
Bottom

Custom Roles & Capabilities


  • kc9wwh
    Participant

    @kc9wwh

    Hello Everyone,

    So I’ve been working to get some custom permissions setup for our site and are running into some issues…I’ve followed the document located here and in turn have added the following code to my functions.php file in my child theme:

    //code to add members and board roles
     
    function add_new_roles( $bbp_roles )
    {
        /* Add a role called member */
        $bbp_roles['bbp_member'] = array(
            'name' => 'Member',
            'capabilities' => custom_capabilities( 'bbp_member' )
            );
     
        /* Add a role called board */
        $bbp_roles['bbp_board'] = array(
            'name' => 'Board Member',
            'capabilities' => custom_capabilities( 'bbp_board' )
            );
     
        return $bbp_roles;
    }
     
    add_filter( 'bbp_get_dynamic_roles', 'add_new_roles', 1 );
     
    function add_role_caps_filter( $caps, $role )
    {
        /* Only filter for roles we are interested in! */
        if( $role == 'bbp_member' )
            $caps = custom_capabilities( $role );
     
        if( $role == 'bbp_board' )
            $caps = custom_capabilities( $role );
     
        return $caps;
    }
     
    add_filter( 'bbp_get_caps_for_role', 'add_role_caps_filter', 10, 2 );
     
    function custom_capabilities( $role )
    {
        switch ( $role )
        {
     
            /* Capabilities for 'Member' role */
            case 'bbp_member':
                return array(
                    // Primary caps
                    'spectate'              => true,
                    'participate'           => true,
                    'moderate'              => false,
                    'throttle'              => false,
                    'view_trash'            => false,
     
                    // Forum caps
                    'publish_forums'        => false,
                    'edit_forums'           => false,
                    'edit_others_forums'    => false,
                    'delete_forums'         => false,
                    'delete_others_forums'  => false,
                    'read_private_forums'   => true,
                    'read_hidden_forums'    => false,
     
                    // Topic caps
                    'publish_topics'        => true,
                    'edit_topics'           => true,
                    'edit_others_topics'    => false,
                    'delete_topics'         => false,
                    'delete_others_topics'  => false,
                    'read_private_topics'   => true,
     
                    // Reply caps
                    'publish_replies'       => true,
                    'edit_replies'          => true,
                    'edit_others_replies'   => false,
                    'delete_replies'        => false,
                    'delete_others_replies' => false,
                    'read_private_replies'  => true,
     
                    // Topic tag caps
                    'manage_topic_tags'     => false,
                    'edit_topic_tags'       => false,
                    'delete_topic_tags'     => false,
                    'assign_topic_tags'     => true,
                );
     
                /* Capabilities for 'Board Member' role */
            case 'bbp_board':
                return array(
                    // Primary caps
                    'spectate'              => true,
                    'participate'           => true,
                    'moderate'              => true,
                    'throttle'              => true,
                    'view_trash'            => false,
     
                    // Forum caps
                    'publish_forums'        => true,
                    'edit_forums'           => true,
                    'edit_others_forums'    => true,
                    'delete_forums'         => true,
                    'delete_others_forums'  => true,
                    'read_private_forums'   => true,
                    'read_hidden_forums'    => true,
     
                    // Topic caps
                    'publish_topics'        => true,
                    'edit_topics'           => true,
                    'edit_others_topics'    => true,
                    'delete_topics'         => true,
                    'delete_others_topics'  => true,
                    'read_private_topics'   => true,
     
                    // Reply caps
                    'publish_replies'       => true,
                    'edit_replies'          => true,
                    'edit_others_replies'   => true,
                    'delete_replies'        => true,
                    'delete_others_replies' => true,
                    'read_private_replies'  => true,
     
                    // Topic tag caps
                    'manage_topic_tags'     => true,
                    'edit_topic_tags'       => true,
                    'delete_topic_tags'     => true,
                    'assign_topic_tags'     => true,
                );
     
                break;
     
            default :
                return $role;
        }
    }

    The problem I am running into is that the bbp_member role can’t seem to read and private topics, even though I have that capability set to true…? The bbp_board role works just as expected and in playing with the bbp_member role it seems to come down to the “moderate” capability…which I really don’t want on for our regular members.

    Any help on this would be greatly appreciated.

    I have the latest versions of WP, bbPress and BuddyPress installed.

    Thank you

Viewing 2 replies - 26 through 27 (of 27 total)

  • kc9wwh
    Participant

    @kc9wwh

    lol

    I went to Tools > Forums > Reset Forums, checked the 2 boxes and clicked Reset bbPress.

    …I did try disabling and re-enabling the plug-in first, but that didn’t work.

    Thanks again!


    Robin W
    Moderator

    @robin-w

    ahh, so you started again, maybe I won’t suggest others delete their set-up to get it working 🙂

    I’ll have another play myself in a few weeks, but thanks for all your testing, and patience – many give up just before they would have fixed it !

Viewing 2 replies - 26 through 27 (of 27 total)
  • You must be logged in to reply to this topic.
Skip to toolbar