Skip to:
Content

bbPress.org

Changeset 4340


Ignore:
Timestamp:
11/05/2012 05:54:23 AM (12 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.