Bläddra i källkod

add configurable user quota

andre 4 år sedan
förälder
incheckning
42bb03503c
1 ändrade filer med 18 tillägg och 0 borttagningar
  1. 18 0
      zimbraSingle.php

+ 18 - 0
zimbraSingle.php

@@ -603,6 +603,9 @@ function zimbraSingle_ChangePackage($params) {
         );
         return 'Error: could not set class of service for '. $params['username'];
     }
+	$baseQuota = $params['configoption2'] ? $params['configoption2'] : 1;
+    $addonQuota = $params['configoptions']['addonQuota'] ? $params['configoptions']['addonQuota'] : 0;
+    $newQuota = ($baseQuota + $addonQuota) * 1048576;
     $accountQuota = $apiAccountManager->getQuota($params['username']);
     if(is_a($accountQuota, 'Exception')) {
         logModuleCall(
@@ -612,6 +615,21 @@ function zimbraSingle_ChangePackage($params) {
             'Error : could not find quota for ' . $params['username'],
             $accountQuota
         );
+        return 'Error: could not fetch account quota for '. $params['username'];
+    }
+    if ($newQuota < $accountQuota) {
+        return 'Error: quota cannot be decreased';
+    }
+    $response = $apiAccountManager->modifyAccount($params['username'], ['zimbraMailQuota' => $newQuota,]);
+    if(is_a($response, 'Exception')) {
+        logModuleCall(
+            'zimbrasingle',
+            __FUNCTION__,
+            $params,
+            'Error: could not update quota for '. $params['username'],
+            $response
+        );
+        return 'Error: could not update quota for '. $params['username'];
     }
     try {
         Capsule::table('tblhosting')