Skip to:
Content

bbPress.org

Changeset 4330


Ignore:
Timestamp:
11/04/2012 02:11:16 AM (14 years ago)
Author:
johnjamesjacoby
Message:

Capabilities:

  • Remove advanced capabilities code, template part, and UI helpers.
  • This has been replaced by the forums roles selection.
  • See #1939.
Location:
trunk
Files:
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/admin/users.php

    r4309 r4330  
    4949                // User profile edit/display actions
    5050                add_action( 'edit_user_profile', array( $this, 'secondary_role_display' ) );
    51 
    52                 // Show advanced capabilities
    53                 if ( bbp_use_advanced_capability_editor() ) {
    54 
    55                         // Admin styles
    56                         add_action( 'admin_head',        array( $this, 'admin_head' ) );
    57 
    58                         // User profile edit/display actions
    59                         add_action( 'edit_user_profile', array( $this, 'advanced_capability_display' ) );
    60 
    61                         // Noop WordPress additional caps output area
    62                         add_filter( 'additional_capabilities_display', '__return_false' );
    63                 }
    64         }
    65 
    66         /**
    67          * Add some general styling to the admin area
    68          *
    69          * @since bbPress (r2464)
    70          *
    71          * @uses bbp_get_forum_post_type() To get the forum post type
    72          * @uses bbp_get_topic_post_type() To get the topic post type
    73          * @uses bbp_get_reply_post_type() To get the reply post type
    74          * @uses sanitize_html_class() To sanitize the classes
    75          */
    76         public function admin_head() {
    77                 ?>
    78 
    79                 <style type="text/css" media="screen">
    80                 /*<![CDATA[*/
    81                         div.bbp-user-capabilities {
    82                                 margin: 0 10px 10px;
    83                                 display: inline-block;
    84                                 vertical-align: top;
    85                         }
    86 
    87                         div.bbp-user-capabilities h4 {
    88                                 margin: 0 0 10px;
    89                         }
    90 
    91                         p.bbp-default-caps-wrapper {
    92                                 clear: both;
    93                                 margin: 80px -10px 0;
    94                         }
    95                 /*]]>*/
    96                 </style>
    97 
    98                 <?php
    9951        }
    10052
     
    150102                <?php
    151103        }
    152 
    153         /**
    154          * Responsible for displaying bbPress's advanced capability interface.
    155          *
    156          * Hidden by default. Must be explicitly enabled.
    157          *
    158          * @since bbPress (r2464)
    159          *
    160          * @param WP_User $profileuser User data
    161          * @uses do_action() Calls 'bbp_user_profile_forums'
    162          * @return bool Always false
    163          */
    164         public function advanced_capability_display( $profileuser ) {
    165 
    166                 // Bail if current user cannot edit users
    167                 if ( ! current_user_can( 'edit_user', $profileuser->ID ) )
    168                         return; ?>
    169 
    170                 <table class="form-table">
    171                         <tbody>
    172                                 <tr>
    173                                         <th><?php _e( 'This user can:', 'bbpress' ); ?></th>
    174 
    175                                         <td>
    176                                                 <fieldset>
    177                                                         <legend class="screen-reader-text"><span><?php _e( 'Additional Capabilities', 'bbpress' ); ?></span></legend>
    178 
    179                                                         <?php foreach ( bbp_get_capability_groups() as $group ) : ?>
    180 
    181                                                                 <div class="bbp-user-capabilities">
    182                                                                         <h4><?php bbp_capability_group_title( $group ); ?></h4>
    183 
    184                                                                         <?php foreach ( bbp_get_capabilities_for_group( $group ) as $capability ) : ?>
    185 
    186                                                                                 <label for="_bbp_<?php echo $capability; ?>">
    187                                                                                         <input id="_bbp_<?php echo $capability; ?>" name="_bbp_<?php echo $capability; ?>" type="checkbox" id="_bbp_<?php echo $capability; ?>" value="1" <?php checked( user_can( $profileuser->ID, $capability ) ); ?> />
    188                                                                                         <?php bbp_capability_title( $capability ); ?>
    189                                                                                 </label>
    190                                                                                 <br />
    191 
    192                                                                         <?php endforeach; ?>
    193 
    194                                                                 </div>
    195 
    196                                                         <?php endforeach; ?>
    197 
    198                                                         <p class="bbp-default-caps-wrapper">
    199                                                                 <input type="submit" name="bbp-default-caps" class="button" value="<?php esc_attr_e( 'Reset to Default', 'bbpress' ); ?>"/>
    200                                                         </p>
    201 
    202                                                 </fieldset>
    203                                         </td>
    204                                 </tr>
    205 
    206                         </tbody>
    207                 </table>
    208 
    209                 <?php
    210         }
    211104}
    212105new BBP_Users_Admin();
  • trunk/includes/core/actions.php

    r4316 r4330  
    225225add_action( 'make_spam_user', 'bbp_make_spam_user' );
    226226
    227 // User capabilities
    228 add_action( 'bbp_profile_update', 'bbp_profile_update_capabilities' );
     227// User role
     228add_action( 'bbp_profile_update', 'bbp_profile_update_role' );
    229229
    230230// Hook WordPress admin actions to bbPress profiles on save
  • trunk/includes/core/capabilities.php

    r4314 r4330  
    1414// Exit if accessed directly
    1515if ( !defined( 'ABSPATH' ) ) exit;
    16 
    17 /**
    18  * Whether or not to show advanced capability editing when editing a user.
    19  *
    20  * @since bbPress (r4290)
    21  *
    22  * @param bool $default
    23  * @return bool
    24  */
    25 function bbp_use_advanced_capability_editor( $default = false ) {
    26         return (bool) apply_filters( 'bbp_use_advanced_capability_editor', $default );
    27 }
    28 
    29 /** Output ********************************************************************/
    30 
    31 /**
    32  * Return the capability groups
    33  *
    34  * @since bbPress (r4163)
    35  *
    36  * @return array of groups
    37  */
    38 function bbp_get_capability_groups() {
    39         return apply_filters( 'bbp_get_capability_groups', array(
    40                 'primary',
    41                 'forums',
    42                 'topics',
    43                 'replies',
    44                 'topic_tags'
    45         ) );
    46 }
    47 
    48 /**
    49  * Return capabilities for the group
    50  *
    51  * @since bbPress (r4163)
    52  *
    53  * @param string $group
    54  * @return array of capabilities
    55  */
    56 function bbp_get_capabilities_for_group( $group = '' ) {
    57         switch ( $group ) {
    58                 case 'primary'    :
    59                         return bbp_get_primary_capabilities();
    60                         break;
    61                 case 'forums'     :
    62                         return bbp_get_forums_capabilities();
    63                         break;
    64                 case 'topics'     :
    65                         return bbp_get_topics_capabilities();
    66                         break;
    67                 case 'replies'    :
    68                         return bbp_get_replies_capabilities();
    69                         break;
    70                 case 'topic_tags' :
    71                         return bbp_get_topic_tags_capabilities();
    72                         break;
    73                 default :
    74                         return array();
    75                         break;
    76         }
    77 }
    78 
    79 /**
    80  * Output the human readable capability group title
    81  *
    82  * @since bbPress (r4163)
    83  *
    84  * @param string $group
    85  * @uses bbp_get_capability_group_title()
    86  */
    87 function bbp_capability_group_title( $group = '' ) {
    88         echo bbp_get_capability_group_title( $group );
    89 }
    90         /**
    91          * Return the human readable capability group title
    92          *
    93          * @since bbPress (r4163)
    94          *
    95          * @param string $group
    96          * @return string
    97          */
    98         function bbp_get_capability_group_title( $group = '' ) {
    99 
    100                 // Default return value to capability group
    101                 $retval = $group;
    102 
    103                 switch( $group ) {
    104                         case 'primary' :
    105                                 $retval = __( 'Primary capabilities', 'bbpress' );
    106                                 break;
    107                         case 'forums' :
    108                                 $retval = __( 'Forum capabilities', 'bbpress' );
    109                                 break;
    110                         case 'topics' :
    111                                 $retval = __( 'Topic capabilites', 'bbpress' );
    112                                 break;
    113                         case 'topic_tags' :
    114                                 $retval = __( 'Topic tag capabilities', 'bbpress' );
    115                                 break;
    116                         case 'replies' :
    117                                 $retval = __( 'Reply capabilities', 'bbpress' );
    118                                 break;
    119                 }
    120 
    121                 return apply_filters( 'bbp_get_capability_group_title', $retval, $group );
    122         }
    123 
    124 /**
    125  * Output the human readable capability title
    126  *
    127  * @since bbPress (r4163)
    128  *
    129  * @param string $group
    130  * @uses bbp_get_capability_title()
    131  */
    132 function bbp_capability_title( $capability = '' ) {
    133         echo bbp_get_capability_title( $capability );
    134 }
    135         /**
    136          * Return the human readable capability title
    137          *
    138          * @since bbPress (r4163)
    139          *
    140          * @param string $capability
    141          * @return string
    142          */
    143         function bbp_get_capability_title( $capability = '' ) {
    144 
    145                 // Default return value to capability
    146                 $retval = $capability;
    147 
    148                 switch( $capability ) {
    149 
    150                         // Primary
    151                         case 'spectate' :
    152                                 $retval = __( 'Spectate forum discussion', 'bbpress' );
    153                                 break;
    154                         case 'participate' :
    155                                 $retval = __( 'Participate in forums', 'bbpress' );
    156                                 break;
    157                         case 'moderate' :
    158                                 $retval = __( 'Moderate entire forum', 'bbpress' );
    159                                 break;
    160                         case 'throttle' :
    161                                 $retval = __( 'Skip forum throttle check', 'bbpress' );
    162                                 break;
    163                         case 'view_trash' :
    164                                 $retval = __( 'View items in forum trash', 'bbpress' );
    165                                 break;
    166 
    167                         // Forum caps
    168                         case 'read_forum' :
    169                                 $retval = __( 'View forum', 'bbpress' );
    170                                 break;
    171                         case 'edit_forum' :
    172                                 $retval = __( 'Edit forum', 'bbpress' );
    173                                 break;
    174                         case 'trash_forum' :
    175                                 $retval = __( 'Trash forum', 'bbpress' );
    176                                 break;
    177                         case 'delete_forum' :
    178                                 $retval = __( 'Delete forum', 'bbpress' );
    179                                 break;
    180                         case 'moderate_forum' :
    181                                 $retval = __( 'Moderate forum', 'bbpress' );
    182                                 break;
    183                         case 'publish_forums' :
    184                                 $retval = __( 'Create forums', 'bbpress' );
    185                                 break;
    186                         case 'edit_forums' :
    187                                 $retval = __( 'Edit their own forums', 'bbpress' );
    188                                 break;
    189                         case 'edit_others_forums' :
    190                                 $retval = __( 'Edit all forums', 'bbpress' );
    191                                 break;
    192                         case 'delete_forums' :
    193                                 $retval = __( 'Delete their own forums', 'bbpress' );
    194                                 break;
    195                         case 'delete_others_forums' :
    196                                 $retval = __( 'Delete all forums', 'bbpress' );
    197                                 break;
    198                         case 'read_private_forums' :
    199                                 $retval = __( 'View private forums', 'bbpress' );
    200                                 break;
    201                         case 'read_hidden_forums' :
    202                                 $retval = __( 'View hidden forums', 'bbpress' );
    203                                 break;
    204 
    205                         // Topic caps
    206                         case 'read_topic' :
    207                                 $retval = __( 'View topic', 'bbpress' );
    208                                 break;
    209                         case 'edit_topic' :
    210                                 $retval = __( 'Edit topic', 'bbpress' );
    211                                 break;
    212                         case 'trash_topic' :
    213                                 $retval = __( 'Trash topic', 'bbpress' );
    214                                 break;
    215                         case 'moderate_topic' :
    216                                 $retval = __( 'Moderate topic', 'bbpress' );
    217                                 break;
    218                         case 'delete_topic' :
    219                                 $retval = __( 'Delete topic', 'bbpress' );
    220                                 break;
    221                         case 'publish_topics' :
    222                                 $retval = __( 'Create topics', 'bbpress' );
    223                                 break;
    224                         case 'edit_topics' :
    225                                 $retval = __( 'Edit their own topics', 'bbpress' );
    226                                 break;
    227                         case 'edit_others_topics' :
    228                                 $retval = __( 'Edit others topics', 'bbpress' );
    229                                 break;
    230                         case 'delete_topics' :
    231                                 $retval = __( 'Delete own topics', 'bbpress' );
    232                                 break;
    233                         case 'delete_others_topics' :
    234                                 $retval = __( 'Delete others topics', 'bbpress' );
    235                                 break;
    236                         case 'read_private_topics' :
    237                                 $retval = __( 'View private topics', 'bbpress' );
    238                                 break;
    239 
    240                         // Reply caps
    241                         case 'read_reply' :
    242                                 $retval = __( 'Read reply', 'bbpress' );
    243                                 break;
    244                         case 'edit_reply' :
    245                                 $retval = __( 'Edit reply', 'bbpress' );
    246                                 break;
    247                         case 'trash_reply' :
    248                                 $retval = __( 'Trash reply', 'bbpress' );
    249                                 break;
    250                         case 'delete_reply' :
    251                                 $retval = __( 'Delete reply', 'bbpress' );
    252                                 break;
    253                         case 'publish_replies' :
    254                                 $retval = __( 'Create replies', 'bbpress' );
    255                                 break;
    256                         case 'edit_replies' :
    257                                 $retval = __( 'Edit own replies', 'bbpress' );
    258                                 break;
    259                         case 'edit_others_replies' :
    260                                 $retval = __( 'Edit others replies', 'bbpress' );
    261                                 break;
    262                         case 'delete_replies' :
    263                                 $retval = __( 'Delete own replies', 'bbpress' );
    264                                 break;
    265                         case 'delete_others_replies' :
    266                                 $retval = __( 'Delete others replies', 'bbpress' );
    267                                 break;
    268                         case 'read_private_replies' :
    269                                 $retval = __( 'View private replies', 'bbpress' );
    270                                 break;
    271 
    272                         // Topic tag caps
    273                         case 'manage_topic_tags' :
    274                                 $retval = __( 'Remove tags from topics', 'bbpress' );
    275                                 break;
    276                         case 'edit_topic_tags' :
    277                                 $retval = __( 'Edit topic tags', 'bbpress' );
    278                                 break;
    279                         case 'delete_topic_tags' :
    280                                 $retval = __( 'Delete topic tags', 'bbpress' );
    281                                 break;
    282                         case 'assign_topic_tags' :
    283                                 $retval = __( 'Assign tags to topics', 'bbpress' );
    284                                 break;
    285                 }
    286 
    287                 return apply_filters( 'bbp_get_capability_title', $retval, $capability );
    288         }
    28916
    29017/** Mapping *******************************************************************/
  • trunk/includes/forums/capabilities.php

    r4249 r4330  
    2727                'delete_posts'        => 'delete_forums',
    2828                'delete_others_posts' => 'delete_others_forums'
    29         ) );
    30 }
    31 
    32 /**
    33  * Return forum post-type capabilities, used when registering the post type
    34  *
    35  * @since bbPress (r4163)
    36  *
    37  * @return array of forums capabilities
    38  */
    39 function bbp_get_forums_capabilities() {
    40         return apply_filters( 'bbp_get_forums_capabilities', array(
    41                 'publish_forums',
    42                 'edit_forums',
    43                 'edit_others_forums',
    44                 'delete_forums',
    45                 'delete_others_forums',
    46                 'read_private_forums',
    47                 'read_hidden_forums'
    4829        ) );
    4930}
  • trunk/includes/replies/capabilities.php

    r4249 r4330  
    2626                'delete_posts'        => 'delete_replies',
    2727                'delete_others_posts' => 'delete_others_replies'
    28         ) );
    29 }
    30 
    31 /**
    32  * Get the reply post-type capabilities
    33  *
    34  * @since bbPress (r4163)
    35  *
    36  * @return array of replies capabilities
    37  */
    38 function bbp_get_replies_capabilities() {
    39         return apply_filters( 'bbp_get_replies_capabilities', array(
    40                 'publish_replies',
    41                 'edit_replies',
    42                 'edit_others_replies',
    43                 'delete_replies',
    44                 'delete_others_replies',
    45                 'read_private_replies'
    4628        ) );
    4729}
  • trunk/includes/topics/capabilities.php

    r4249 r4330  
    4848
    4949/**
    50  * Return topic post-type capabilities, used when registering the post type
    51  *
    52  * @since bbPress (r4163)
    53  *
    54  * @return array of topics capabilities
    55  */
    56 function bbp_get_topics_capabilities() {
    57         return apply_filters( 'bbp_get_topics_capabilities', array(
    58                 'publish_topics',
    59                 'edit_topics',
    60                 'edit_others_topics',
    61                 'delete_topics',
    62                 'delete_others_topics',
    63                 'read_private_topics'
    64         ) );
    65 }
    66 
    67 /**
    68  * Return topic-tag taxonomy capabilities, used when registering the taxonomy
    69  *
    70  * @since bbPress (r4163)
    71  *
    72  * @return array of topic-tag capabilities
    73  */
    74 function bbp_get_topic_tags_capabilities() {
    75         return apply_filters( 'bbp_get_topic_tags_capabilities', array(
    76                 'manage_topic_tags',
    77                 'edit_topic_tags',
    78                 'delete_topic_tags',
    79                 'assign_topic_tags'
    80         ) );
    81 }
    82 
    83 /**
    8450 * Maps topic capabilities
    8551 *
     
    283249        }
    284250
    285         return apply_filters( 'bbp_map_topic_Tag_meta_caps', $caps, $cap, $user_id, $args );
    286 }
     251        return apply_filters( 'bbp_map_topic_tag_meta_caps', $caps, $cap, $user_id, $args );
     252}
  • trunk/includes/users/capabilities.php

    r4319 r4330  
    99 * @subpackage Capabilities
    1010 */
    11 
    12 /**
    13  * Get the primary bbPress capabilities
    14  *
    15  * @since bbPress (r4163)
    16  *
    17  * @return array of primary capabilities
    18  */
    19 function bbp_get_primary_capabilities() {
    20         return apply_filters( 'bbp_get_primary_capabilities', array(
    21 
    22                 // Current caps
    23                 'spectate',
    24                 'participate',
    25                 'moderate',
    26                 'throttle',
    27                 'view_trash',
    28 
    29                 // Legacy caps
    30                 'banned',
    31                 'blocked',
    32                 'bozo'
    33         ) );
    34 }
    3511
    3612/**
     
    7046
    7147/**
    72  * Remove all bbPress capabilities for a given user
    73  *
    74  * @since bbPress (r4221)
    75  *
    76  * @param int $user_id
    77  * @return boolean True on success, false on failure
    78  */
    79 function bbp_remove_user_caps( $user_id = 0 ) {
    80 
    81         // Bail if no user was passed
    82         if ( empty( $user_id ) )
    83                 return false;
    84 
    85         // Load up the user
    86         $user = new WP_User( $user_id );
    87 
    88         // Remove all caps
    89         foreach ( bbp_get_capability_groups() as $group )
    90                 foreach ( bbp_get_capabilities_for_group( $group ) as $capability )
    91                         $user->remove_cap( $capability );
    92 
    93         // Success
    94         return true;
    95 }
    96 
    97 /**
    98  * Remove all bbPress capabilities for a given user
    99  *
    100  * @since bbPress (r4221)
    101  *
    102  * @param int $user_id
    103  * @return boolean True on success, false on failure
    104  */
    105 function bbp_reset_user_caps( $user_id = 0 ) {
    106 
    107         // Bail if no user was passed
    108         if ( empty( $user_id ) )
    109                 return false;
    110 
    111         // Bail if current user cannot edit this user
    112         if ( ! current_user_can( 'edit_user', $user_id ) )
    113                 return false;
    114 
    115         // Remove all caps for user
    116         bbp_remove_user_caps( $user_id );
    117 
    118         // Load up the user
    119         $user = new WP_User( $user_id );
    120 
    121         // User has no role so bail
    122         if ( ! isset( $user->roles ) )
    123                 return false;
    124 
    125         // Use first user role
    126         $caps = bbp_get_caps_for_role( array_shift( $user->roles ) );
    127 
    128         // Add caps for the first role
    129         foreach ( $caps as $cap => $value )
    130                 $user->add_cap( $cap, $value );
    131 
    132         // Success
    133         return true;
    134 }
    135 
    136 /**
    137  * Save all bbPress capabilities for a given user
    138  *
    139  * @since bbPress (r4221)
    140  *
    141  * @param type $user_id
    142  * @return boolean
    143  */
    144 function bbp_save_user_caps( $user_id = 0 ) {
    145 
    146         // Bail if no user was passed
    147         if ( empty( $user_id ) )
    148                 return false;
    149 
    150         // Bail if current user cannot edit this user
    151         if ( ! current_user_can( 'edit_user', $user_id ) )
    152                 return false;
    153 
    154         // Load up the user
    155         $user = new WP_User( $user_id );
    156 
    157         // Loop through capability groups
    158         foreach ( bbp_get_capability_groups() as $group ) {
    159                 foreach ( bbp_get_capabilities_for_group( $group ) as $capability ) {
    160 
    161                         // Maybe add cap
    162                         if ( ! empty( $_POST['_bbp_' . $capability] ) && ! $user->has_cap( $capability ) ) {
    163                                 $user->add_cap( $capability, true );
    164 
    165                         // Maybe remove cap
    166                         } elseif ( empty( $_POST['_bbp_' . $capability] ) && $user->has_cap( $capability ) ) {
    167                                 $user->add_cap( $capability, false );
    168                         }
    169                 }
    170         }
    171 
    172         // Success
    173         return true;
    174 }
    175 
    176 /**
    17748 * Helper function hooked to 'bbp_edit_user_profile_update' action to save or
    17849 * update user roles and capabilities.
     
    18455 * @usse bbp_save_user_caps() to save caps
    18556 */
    186 function bbp_profile_update_capabilities( $user_id = 0 ) {
     57function bbp_profile_update_role( $user_id = 0 ) {
    18758
    18859        // Bail if no user ID was passed
     
    19061                return;
    19162
    192         // Bail if advanced capability editor is off
    193         if ( ! empty( $_POST['bbp-forums-role'] ) ) {
     63        // Bail if no role
     64        if ( ! isset( $_POST['bbp-forums-role'] ) )
     65                return;
    19466
    195                 // Fromus role we want the user to have
    196                 $new_role    = sanitize_text_field( $_POST['bbp-forums-role'] );
    197                 $forums_role = bbp_get_user_role( $user_id );
     67        // Fromus role we want the user to have
     68        $new_role    = sanitize_text_field( $_POST['bbp-forums-role'] );
     69        $forums_role = bbp_get_user_role( $user_id );
    19870
    199                 // Set the new forums role
    200                 if ( $new_role != $forums_role ) {
    201 
    202                         // Remove any interim form user capabilities
    203                         bbp_remove_user_caps( $user_id );
    204 
    205                         // Set the users new forums role
    206                         bbp_set_user_role( $user_id, $new_role );
    207                 }
    208         }
    209 
    210         // Save additional capabilities
    211         if ( bbp_use_advanced_capability_editor() ) {
    212 
    213                 // Either reset caps for role
    214                 if ( ! empty( $_POST['bbp-default-caps'] ) ) {
    215                         bbp_reset_user_caps( $user_id );
    216 
    217                 // Or set caps individually
    218                 } else {
    219                         bbp_save_user_caps( $user_id );
    220                 }
     71        // Set the new forums role
     72        if ( $new_role != $forums_role ) {
     73                bbp_set_user_role( $user_id, $new_role );
    22174        }
    22275}
     
    259112                return;
    260113
    261         // Remove any interim bbPress caps
    262         bbp_remove_user_caps( $user_id );
    263 
    264114        // Assign the default role to the current user
    265115        bbpress()->current_user->add_role( bbp_get_default_role() );
  • trunk/templates/bbp-default/bbpress/form-user-edit.php

    r4307 r4330  
    148148                        <legend><?php _e( 'User Role', 'bbpress' ); ?></legend>
    149149
     150                        <?php do_action( 'bbp_user_edit_before_role' ); ?>
     151
    150152                        <?php if ( is_multisite() && is_super_admin() && current_user_can( 'manage_network_options' ) ) : ?>
    151153
     
    162164                        <?php bbp_get_template_part( 'form', 'user-roles' ); ?>
    163165
    164                         <?php if ( bbp_use_advanced_capability_editor() ) : ?>
    165 
    166                                 <?php bbp_get_template_part( 'form', 'user-capabilities' ); ?>
    167 
    168                         <?php endif; ?>
     166                        <?php do_action( 'bbp_user_edit_after_role' ); ?>
    169167
    170168                </fieldset>
Note: See TracChangeset for help on using the changeset viewer.