Skip to:
Content

bbPress.org


Ignore:
Timestamp:
11/04/2012 02:11:16 AM (13 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.