Skip to:
Content

bbPress.org


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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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() );
Note: See TracChangeset for help on using the changeset viewer.