Changeset 2994 for branches/plugin/bbp-includes/bbp-caps.php
- Timestamp:
- 04/17/2011 04:23:07 AM (15 years ago)
- File:
-
- 1 edited
-
branches/plugin/bbp-includes/bbp-caps.php (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/plugin/bbp-includes/bbp-caps.php
r2818 r2994 21 21 */ 22 22 function bbp_add_roles() { 23 23 24 // Add the Moderator role and add the default role caps. Mod caps are added by the bbp_add_caps () function 24 $default =& get_role( get_option( 'default_role' ) ); 25 $default = get_role( get_option( 'default_role' ) ); 26 27 // Moderators are default role + forum moderating caps in bbp_add_caps() 25 28 add_role( 'bbp_moderator', __( 'Forum Moderator', 'bbpress' ), $default->capabilities ); 26 29 … … 40 43 */ 41 44 function bbp_add_caps() { 42 // Add caps to admin role 43 if ( $admin =& get_role( 'administrator' ) ) { 44 45 // Forum caps 46 $admin->add_cap( 'publish_forums' ); 47 $admin->add_cap( 'edit_forums' ); 48 $admin->add_cap( 'edit_others_forums' ); 49 $admin->add_cap( 'delete_forums' ); 50 $admin->add_cap( 'delete_others_forums' ); 51 $admin->add_cap( 'read_private_forums' ); 52 53 // Topic caps 54 $admin->add_cap( 'publish_topics' ); 55 $admin->add_cap( 'edit_topics' ); 56 $admin->add_cap( 'edit_others_topics' ); 57 $admin->add_cap( 'delete_topics' ); 58 $admin->add_cap( 'delete_others_topics' ); 59 $admin->add_cap( 'read_private_topics' ); 60 61 // Reply caps 62 $admin->add_cap( 'publish_replies' ); 63 $admin->add_cap( 'edit_replies' ); 64 $admin->add_cap( 'edit_others_replies' ); 65 $admin->add_cap( 'delete_replies' ); 66 $admin->add_cap( 'delete_others_replies' ); 67 $admin->add_cap( 'read_private_replies' ); 68 69 // Topic tag caps 70 $admin->add_cap( 'manage_topic_tags' ); 71 $admin->add_cap( 'edit_topic_tags' ); 72 $admin->add_cap( 'delete_topic_tags' ); 73 $admin->add_cap( 'assign_topic_tags' ); 74 75 // Misc 76 $admin->add_cap( 'moderate' ); 77 $admin->add_cap( 'throttle' ); 78 $admin->add_cap( 'view_trash' ); 79 } 80 81 // Add caps to moderator role 82 if ( $mod =& get_role( 'bbp_moderator' ) ) { 83 84 // Topic caps 85 $mod->add_cap( 'publish_topics' ); 86 $mod->add_cap( 'edit_topics' ); 87 $mod->add_cap( 'edit_others_topics' ); 88 $mod->add_cap( 'delete_topics' ); 89 $mod->add_cap( 'delete_others_topics' ); 90 $mod->add_cap( 'read_private_topics' ); 91 92 // Reply caps 93 $mod->add_cap( 'publish_replies' ); 94 $mod->add_cap( 'edit_replies' ); 95 $mod->add_cap( 'edit_others_replies' ); 96 $mod->add_cap( 'delete_replies' ); 97 $mod->add_cap( 'delete_others_replies' ); 98 $mod->add_cap( 'read_private_replies' ); 99 100 // Topic tag caps 101 $mod->add_cap( 'manage_topic_tags' ); 102 $mod->add_cap( 'edit_topic_tags' ); 103 $mod->add_cap( 'delete_topic_tags' ); 104 $mod->add_cap( 'assign_topic_tags' ); 105 106 // Users 107 $mod->add_cap( 'edit_users' ); 108 109 // Misc 110 $mod->add_cap( 'moderate' ); 111 $mod->add_cap( 'throttle' ); 112 $mod->add_cap( 'view_trash' ); 113 } 114 115 // Add caps to default role 116 if ( $default =& get_role( get_option( 'default_role' ) ) ) { 117 118 // Topic caps 119 $default->add_cap( 'publish_topics' ); 120 $default->add_cap( 'edit_topics' ); 121 122 // Reply caps 123 $default->add_cap( 'publish_replies' ); 124 $default->add_cap( 'edit_replies' ); 125 126 // Topic tag caps 127 $default->add_cap( 'assign_topic_tags' ); 45 global $wp_roles; 46 47 // Loop through available roles 48 foreach( $wp_roles->roles as $role => $details ) { 49 50 // Load this role 51 $this_role = get_role( $role ); 52 53 // Loop through caps for this role and remove them 54 foreach ( bbp_get_caps_for_role( $role ) as $cap ) { 55 $this_role->add_cap( $cap ); 56 } 128 57 } 129 58 … … 143 72 */ 144 73 function bbp_remove_caps() { 145 // Remove caps from admin role 146 if ( $admin =& get_role( 'administrator' ) ) { 147 148 // Forum caps 149 $admin->remove_cap( 'publish_forums' ); 150 $admin->remove_cap( 'edit_forums' ); 151 $admin->remove_cap( 'edit_others_forums' ); 152 $admin->remove_cap( 'delete_forums' ); 153 $admin->remove_cap( 'delete_others_forums' ); 154 $admin->remove_cap( 'read_private_forums' ); 155 156 // Topic caps 157 $admin->remove_cap( 'publish_topics' ); 158 $admin->remove_cap( 'edit_topics' ); 159 $admin->remove_cap( 'edit_others_topics' ); 160 $admin->remove_cap( 'delete_topics' ); 161 $admin->remove_cap( 'delete_others_topics' ); 162 $admin->remove_cap( 'read_private_topics' ); 163 164 // Reply caps 165 $admin->remove_cap( 'publish_replies' ); 166 $admin->remove_cap( 'edit_replies' ); 167 $admin->remove_cap( 'edit_others_replies' ); 168 $admin->remove_cap( 'delete_replies' ); 169 $admin->remove_cap( 'delete_others_replies' ); 170 $admin->remove_cap( 'read_private_replies' ); 171 172 // Topic tag caps 173 $admin->remove_cap( 'manage_topic_tags' ); 174 $admin->remove_cap( 'edit_topic_tags' ); 175 $admin->remove_cap( 'delete_topic_tags' ); 176 $admin->remove_cap( 'assign_topic_tags' ); 177 178 // Misc 179 $admin->remove_cap( 'moderate' ); 180 $admin->remove_cap( 'throttle' ); 181 $admin->remove_cap( 'view_trash' ); 182 } 183 184 // Remove caps from default role 185 if ( $default =& get_role( get_option( 'default_role' ) ) ) { 186 187 // Topic caps 188 $default->remove_cap( 'publish_topics' ); 189 $default->remove_cap( 'edit_topics' ); 190 191 // Reply caps 192 $default->remove_cap( 'publish_replies' ); 193 $default->remove_cap( 'edit_replies' ); 194 195 // Topic tag caps 196 $default->remove_cap( 'assign_topic_tags' ); 74 global $wp_roles; 75 76 // Loop through available roles 77 foreach( $wp_roles->roles as $role => $details ) { 78 79 // Load this role 80 $this_role = get_role( $role ); 81 82 // Loop through caps for this role and remove them 83 foreach ( bbp_get_caps_for_role( $role ) as $cap ) { 84 $this_role->remove_cap( $cap ); 85 } 197 86 } 198 87 … … 211 100 */ 212 101 function bbp_remove_roles() { 102 213 103 // Remove the Moderator role 214 104 remove_role( 'bbp_moderator' ); … … 235 125 236 126 switch ( $cap ) { 127 128 // Reading 237 129 case 'read_forum' : 238 130 case 'read_topic' : … … 253 145 break; 254 146 147 // Editing 255 148 case 'edit_forum' : 256 149 case 'edit_topic' : … … 269 162 break; 270 163 164 // Deleting 271 165 case 'delete_forum' : 272 166 … … 307 201 */ 308 202 function bbp_get_forum_caps() { 203 309 204 // Forum meta caps 310 205 $caps = array ( … … 325 220 */ 326 221 function bbp_get_topic_caps() { 222 327 223 // Topic meta caps 328 224 $caps = array ( … … 343 239 */ 344 240 function bbp_get_reply_caps () { 241 345 242 // Reply meta caps 346 243 $caps = array ( … … 365 262 */ 366 263 function bbp_get_topic_tag_caps () { 264 367 265 // Topic tag meta caps 368 266 $caps = array ( … … 376 274 } 377 275 276 277 /** 278 * Returns an array of capabilities based on the role that is being requested. 279 * 280 * @since bbPress (r2994) 281 * 282 * @param string $role Optional. Defaults to The role to load caps for 283 * @uses apply_filters() Allow return value to be filtered 284 * 285 * @return array Capabilities for $role 286 */ 287 function bbp_get_caps_for_role( $role = '' ) { 288 289 // Which role are we looking for? 290 switch ( $role ) { 291 292 // Administrator 293 case 'administrator' : 294 295 $caps = array( 296 297 // Forum caps 298 'publish_forums', 299 'edit_forums', 300 'edit_others_forums', 301 'delete_forums', 302 'delete_others_forums', 303 'read_private_forums', 304 305 // Topic caps 306 'publish_topics', 307 'edit_topics', 308 'edit_others_topics', 309 'delete_topics', 310 'delete_others_topics', 311 'read_private_topics', 312 313 // Reply caps 314 'publish_replies', 315 'edit_replies', 316 'edit_others_replies', 317 'delete_replies', 318 'delete_others_replies', 319 'read_private_replies', 320 321 // Topic tag caps 322 'manage_topic_tags', 323 'edit_topic_tags', 324 'delete_topic_tags', 325 'assign_topic_tags', 326 327 // Misc 328 'moderate', 329 'throttle', 330 'view_trash' 331 ); 332 333 break; 334 335 // Moderator 336 case 'bbp_moderator' : 337 338 $caps = array( 339 340 // Topic caps 341 'publish_topics', 342 'edit_topics', 343 'edit_others_topics', 344 'delete_topics', 345 'delete_others_topics', 346 'read_private_topics', 347 348 // Reply caps 349 'publish_replies', 350 'edit_replies', 351 'edit_others_replies', 352 'delete_replies', 353 'delete_others_replies', 354 'read_private_replies', 355 356 // Topic tag caps 357 'manage_topic_tags', 358 'edit_topic_tags', 359 'delete_topic_tags', 360 'assign_topic_tags', 361 362 // Misc 363 'moderate', 364 'throttle', 365 'view_trash', 366 ); 367 368 break; 369 370 // Other specific roles 371 case 'editor' : 372 case 'author' : 373 case 'contributor' : 374 case 'subscriber' : 375 default : 376 377 $caps = array( 378 379 // Topic caps 380 'publish_topics', 381 'edit_topics', 382 383 // Reply caps 384 'publish_replies', 385 'edit_replies', 386 387 // Topic tag caps 388 'assign_topic_tags', 389 390 ); 391 392 break; 393 } 394 395 return apply_filters( 'bbp_get_caps_for_role', $caps, $role ); 396 } 397 378 398 ?>
Note: See TracChangeset
for help on using the changeset viewer.