Skip to:
Content

bbPress.org

Changeset 4340


Ignore:
Timestamp:
11/05/2012 05:54:23 AM (14 years ago)
Author:
johnjamesjacoby
Message:

Capabilities:

  • Use bbp_get_user_role() to get the user's forums role.
  • Update bbp_set_user_role() to return false if trying to set a role the user already has.
  • Remove foreach loop to remove existing roles, since there's no way to naturally have more than one.
  • See #1939.
File:
1 edited

Legend:

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

    r4320 r4340  
    13881388        if ( !empty( $user ) ) {
    13891389
    1390                 // Remove previous forum roles if any exist
    1391                 $roles = array_intersect( array_values( $user->roles ), array_keys( bbp_get_editable_roles() ) );
    1392 
    1393                 if ( !empty( $roles ) ) {
    1394                         foreach ( $roles as $role ) {
     1390                // Get users forum role
     1391                $role = bbp_get_user_role( $user_id );
     1392
     1393                // User already has this role so no new role is set
     1394                if ( $new_role == $role ) {
     1395                        $new_role = false;
     1396
     1397                // Users role is different than the new role
     1398                } else {
     1399
     1400                        // Remove the old role
     1401                        if ( ! empty( $role ) ) {
    13951402                                $user->remove_role( $role );
    13961403                        }
     1404
     1405                        // Add the new role
     1406                        $user->add_role( $new_role );
    13971407                }
    1398 
    1399                 // Add new forums role
    1400                 $user->add_role( $new_role );
    14011408
    14021409        // User does don exist so return false
Note: See TracChangeset for help on using the changeset viewer.