Changeset 4330 for trunk/includes/users/capabilities.php
- Timestamp:
- 11/04/2012 02:11:16 AM (13 years ago)
- File:
-
- 1 edited
-
trunk/includes/users/capabilities.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/includes/users/capabilities.php
r4319 r4330 9 9 * @subpackage Capabilities 10 10 */ 11 12 /**13 * Get the primary bbPress capabilities14 *15 * @since bbPress (r4163)16 *17 * @return array of primary capabilities18 */19 function bbp_get_primary_capabilities() {20 return apply_filters( 'bbp_get_primary_capabilities', array(21 22 // Current caps23 'spectate',24 'participate',25 'moderate',26 'throttle',27 'view_trash',28 29 // Legacy caps30 'banned',31 'blocked',32 'bozo'33 ) );34 }35 11 36 12 /** … … 70 46 71 47 /** 72 * Remove all bbPress capabilities for a given user73 *74 * @since bbPress (r4221)75 *76 * @param int $user_id77 * @return boolean True on success, false on failure78 */79 function bbp_remove_user_caps( $user_id = 0 ) {80 81 // Bail if no user was passed82 if ( empty( $user_id ) )83 return false;84 85 // Load up the user86 $user = new WP_User( $user_id );87 88 // Remove all caps89 foreach ( bbp_get_capability_groups() as $group )90 foreach ( bbp_get_capabilities_for_group( $group ) as $capability )91 $user->remove_cap( $capability );92 93 // Success94 return true;95 }96 97 /**98 * Remove all bbPress capabilities for a given user99 *100 * @since bbPress (r4221)101 *102 * @param int $user_id103 * @return boolean True on success, false on failure104 */105 function bbp_reset_user_caps( $user_id = 0 ) {106 107 // Bail if no user was passed108 if ( empty( $user_id ) )109 return false;110 111 // Bail if current user cannot edit this user112 if ( ! current_user_can( 'edit_user', $user_id ) )113 return false;114 115 // Remove all caps for user116 bbp_remove_user_caps( $user_id );117 118 // Load up the user119 $user = new WP_User( $user_id );120 121 // User has no role so bail122 if ( ! isset( $user->roles ) )123 return false;124 125 // Use first user role126 $caps = bbp_get_caps_for_role( array_shift( $user->roles ) );127 128 // Add caps for the first role129 foreach ( $caps as $cap => $value )130 $user->add_cap( $cap, $value );131 132 // Success133 return true;134 }135 136 /**137 * Save all bbPress capabilities for a given user138 *139 * @since bbPress (r4221)140 *141 * @param type $user_id142 * @return boolean143 */144 function bbp_save_user_caps( $user_id = 0 ) {145 146 // Bail if no user was passed147 if ( empty( $user_id ) )148 return false;149 150 // Bail if current user cannot edit this user151 if ( ! current_user_can( 'edit_user', $user_id ) )152 return false;153 154 // Load up the user155 $user = new WP_User( $user_id );156 157 // Loop through capability groups158 foreach ( bbp_get_capability_groups() as $group ) {159 foreach ( bbp_get_capabilities_for_group( $group ) as $capability ) {160 161 // Maybe add cap162 if ( ! empty( $_POST['_bbp_' . $capability] ) && ! $user->has_cap( $capability ) ) {163 $user->add_cap( $capability, true );164 165 // Maybe remove cap166 } elseif ( empty( $_POST['_bbp_' . $capability] ) && $user->has_cap( $capability ) ) {167 $user->add_cap( $capability, false );168 }169 }170 }171 172 // Success173 return true;174 }175 176 /**177 48 * Helper function hooked to 'bbp_edit_user_profile_update' action to save or 178 49 * update user roles and capabilities. … … 184 55 * @usse bbp_save_user_caps() to save caps 185 56 */ 186 function bbp_profile_update_ capabilities( $user_id = 0 ) {57 function bbp_profile_update_role( $user_id = 0 ) { 187 58 188 59 // Bail if no user ID was passed … … 190 61 return; 191 62 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; 194 66 195 // Fromus role we want the user to have196 $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 ); 198 70 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 ); 221 74 } 222 75 } … … 259 112 return; 260 113 261 // Remove any interim bbPress caps262 bbp_remove_user_caps( $user_id );263 264 114 // Assign the default role to the current user 265 115 bbpress()->current_user->add_role( bbp_get_default_role() );
Note: See TracChangeset
for help on using the changeset viewer.