Merge "Fix documentation of Maintenance::updateSearchIndex"
[lhc/web/wiklou.git] / includes / specials / SpecialUserrights.php
index d564e5b..87bc259 100644 (file)
@@ -61,15 +61,23 @@ class UserrightsPage extends SpecialPage {
                $isself = $this->getUser()->equals( $targetUser );
 
                $available = $this->changeableGroups();
-               if ( $targetUser->getId() == 0 ) {
+               if ( $targetUser->getId() === 0 ) {
                        return false;
                }
 
-               return !empty( $available['add'] )
-                       || !empty( $available['remove'] )
-                       || ( ( $isself || !$checkIfSelf ) &&
-                               ( !empty( $available['add-self'] )
-                                       || !empty( $available['remove-self'] ) ) );
+               if ( $available['add'] || $available['remove'] ) {
+                       // can change some rights for any user
+                       return true;
+               }
+
+               if ( ( $available['add-self'] || $available['remove-self'] )
+                       && ( $isself || !$checkIfSelf )
+               ) {
+                       // can change some rights for self
+                       return true;
+               }
+
+               return false;
        }
 
        /**
@@ -148,10 +156,10 @@ class UserrightsPage extends SpecialPage {
                        $user->matchEditToken( $request->getVal( 'wpEditToken' ), $this->mTarget )
                ) {
                        /*
-                       * If the user is blocked and they only have "partial" access
-                       * (e.g. they don't have the userrights permission), then don't
-                       * allow them to change any user rights.
-                       */
+                        * If the user is blocked and they only have "partial" access
+                        * (e.g. they don't have the userrights permission), then don't
+                        * allow them to change any user rights.
+                        */
                        if ( !$user->isAllowed( 'userrights' ) ) {
                                // @TODO Should the user be blocked from changing user rights if they
                                //       are partially blocked?