Explorar el Código

add mail forwarding

andre hace 1 año
padre
commit
614ad126c2

+ 2 - 1
app/Enums/Zimbra.php

@@ -96,7 +96,8 @@ class Zimbra
         'zimbraFeatureSMIMEEnabled',
         'zimbraFeatureEwsEnabled',
         'zimbraPrefMailForwardingAddress',
-        'zimbraPrefMailLocalDeliveryDisabled'
+        'zimbraPrefMailLocalDeliveryDisabled',
+        'zimbraFeatureMailForwardingEnabled'
     ];
 
 }

+ 1 - 0
app/Libs/Zimbra/Components/Api/Soap/Models/Account.php

@@ -38,6 +38,7 @@ class Account extends AbstractModel
     const ATTR_ALIAS            = 'zimbraMailAlias';
     const ATTR_MAIL_FORWARD     = 'zimbraPrefMailForwardingAddress';
     const ATTR_DISABLE_LOCAL    = 'zimbraPrefMailLocalDeliveryDisabled';
+    const ATTR_ENABLE_FORWARD   = 'zimbraFeatureMailForwardingEnabled';
     const ATTR_CLASS_OF_SERVICE_ID = 'zimbraCOSId';
 
     protected $id;

+ 1 - 1
app/Libs/Zimbra/Components/Api/Soap/Services/Update/UpdateAccount.php

@@ -72,7 +72,7 @@ class UpdateAccount extends CreateAccount
         $account->setAttr(Account::ATTR_DISPLAY_NAME, $this->formData['display_name']);
         $account->setAttr(Account::ATTR_MAIL_FORWARD, $this->formData['zimbraPrefMailForwardingAddress']);
         $account->setAttr(Account::ATTR_DISABLE_LOCAL, $this->formData['zimbraPrefMailLocalDeliveryDisabled']);
-
+        $account->setAttr(Account::ATTR_ENABLE_FORWARD, $this->formData['zimbraFeatureMailForwardingEnabled']);
         return $account;
 
     }

+ 5 - 2
app/UI/Client/EmailAccount/Providers/EditAccountDataProvider.php

@@ -115,12 +115,15 @@ class EditAccountDataProvider extends BaseDataProvider
         {
             $value = in_array($field, $fieldToProtection) ? htmlentities($value) : $value;
         }
-        if (empty($this->formData['zimbraPrefMailForwardingAddress'])) {
+        if ($this->formData['forward'] == 'on') {
             $this->formData['zimbraPrefMailLocalDeliveryDisabled'] = FALSE;
+            $this->formData['zimbraFeatureMailForwardingEnabled'] = FALSE;
+            $this->formData['zimbraPrefMailForwardingAddress'] = NULL;
         } else {
             $this->formData['zimbraPrefMailLocalDeliveryDisabled'] = TRUE;
+            $this->formData['zimbraFeatureMailForwardingEnabled'] = TRUE;
         }
-        unset($this->formData['forward']);
+
         /**
          * product manager allow to check product settings
          */