Fixed editing a user group option as admin
authorAlexander Ebert <ebert@woltlab.com>
Fri, 18 Jul 2014 20:38:15 +0000 (22:38 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Fri, 18 Jul 2014 20:38:15 +0000 (22:38 +0200)
wcfsetup/install/files/lib/acp/form/UserGroupOptionForm.class.php

index f980054a1c325eeb058678e6c7706ad54c34fc1a..d4619872dfdedb9e4e29aac0d469cba06a5777be 100644 (file)
@@ -149,6 +149,14 @@ class UserGroupOptionForm extends AbstractForm {
        public function validate() {
                parent::validate();
                
+               $isAdmin = false;
+               foreach (WCF::getUser()->getGroupIDs() as $groupID) {
+                       if (UserGroup::getGroupByID($groupID)->isAdminGroup()) {
+                               $isAdmin = true;
+                               break;
+                       }
+               }
+               
                // validate option values
                foreach ($this->values as $groupID => &$optionValue) {
                        if (!isset($this->groups[$groupID])) {
@@ -164,7 +172,7 @@ class UserGroupOptionForm extends AbstractForm {
                                $this->errorType[$e->getField()] = $e->getType();
                        }
                        
-                       if ($this->optionType->compare($optionValue, WCF::getSession()->getPermission($this->userGroupOption->optionName)) == 1) {
+                       if (!$isAdmin && $this->optionType->compare($optionValue, WCF::getSession()->getPermission($this->userGroupOption->optionName)) == 1) {
                                $this->errorType[$groupID] = 'exceedsOwnPermission';
                        }
                }