Prevent disabling of the 'Administrator' contact recipient
authorAlexander Ebert <ebert@woltlab.com>
Mon, 29 Jan 2018 11:51:48 +0000 (12:51 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Mon, 29 Jan 2018 11:51:48 +0000 (12:51 +0100)
wcfsetup/install/files/acp/templates/contactRecipientAdd.tpl
wcfsetup/install/files/lib/acp/form/ContactRecipientEditForm.class.php

index 48c002ce075088b5c51fe99a7085ac0473091950..6bab6a3ea413bea9fdce2fea018909abb698df74 100644 (file)
                        </dd>
                </dl>
                
-               <dl>
-                       <dt></dt>
-                       <dd>
-                               <label><input type="checkbox" name="isDisabled" value="1"{if $isDisabled} checked{/if}> {lang}wcf.acp.contact.recipient.isDisabled{/lang}</label>
-                       </dd>
-               </dl>
+               {if $action != 'edit' || !$recipient->isAdministrator}
+                       <dl>
+                               <dt></dt>
+                               <dd>
+                                       <label><input type="checkbox" name="isDisabled" value="1"{if $isDisabled} checked{/if}> {lang}wcf.acp.contact.recipient.isDisabled{/lang}</label>
+                               </dd>
+                       </dl>
+               {/if}
                
                {event name='dataFields'}
        </div>
index f7056dc67deea595ee17209b31b28708ed1e00f4..0fbd82dfc761ebd98e269d7bb7702363cfa937a6 100644 (file)
@@ -54,6 +54,20 @@ class ContactRecipientEditForm extends ContactRecipientAddForm {
                }
        }
        
+       /**
+        * @inheritDoc
+        */
+       public function validate() {
+               parent::validate();
+               
+               if ($this->recipient->isAdministrator) {
+                       $this->isDisabled = 0;
+               }
+       }
+       
+       /**
+        * @inheritDoc
+        */
        public function readData() {
                parent::readData();