Pārlūkot izejas kodu

add configurable user quota

andre 4 gadi atpakaļ
vecāks
revīzija
9a93d1d3aa
2 mainītis faili ar 17 papildinājumiem un 10 dzēšanām
  1. 1 2
      zimbraAddressAvailable.php
  2. 16 8
      zimbraSingle.php

+ 1 - 2
zimbraAddressAvailable.php

@@ -44,8 +44,7 @@ $server = Capsule::table('tblservers')
 	->get();
 $accessData['zimbraServer'] = $server[0]->hostname;
 $accessData['adminUser'] = $server[0]->username;
-$adminPassCrypt = $server[0]->password;
-$adminPassDecrypt = localAPI('DecryptPassword', array('password2' => $adminPassCrypt));
+$adminPassDecrypt = localAPI('DecryptPassword', array('password2' => $server[0]->password));
 if ($adminPassDecrypt['result'] == 'success') {
 	$accessData['adminPass'] = $adminPassDecrypt['password'];
 }

+ 16 - 8
zimbraSingle.php

@@ -32,8 +32,7 @@ require_once(__DIR__ . '/api/Zm/Server.php');
  * @param string $needle key to search for values
  * @return array of values
  */
-function zimbraSingleFindAll($haystack, $needle)
-{
+function zimbraSingleFindAll($haystack, $needle) {
     $values = array();
     $iterator  = new RecursiveArrayIterator((array)$haystack);
     $recursive = new RecursiveIteratorIterator(
@@ -247,19 +246,18 @@ function zimbraSingle_UsageUpdate($params) {
             );
             continue;
         }
-        $mboxObj = $apiAccountManager->getMailbox($product['username']);
-        if(is_a($mboxObj, 'Exception')) {
+        $mboxInfo = $apiAccountManager->getMailbox($product['username']);
+        if(is_a($mboxInfo, 'Exception')) {
             logModuleCall(
                 'zimbrasingle',
                 __FUNCTION__,
                 $params,
                 'Error: could not fetch mailbox info for ' . $product['username'],
-                $mboxObj
+                $mboxInfo
             );
             continue;
         }
-        $mboxVars = get_object_vars($mboxObj);
-        $mboxSize = $mboxVars['S'];
+        $mboxSize = $mboxInfo['S'];
         try {
             Capsule::table('tblhosting')
                 ->where('id', '=', $product['id'])
@@ -392,6 +390,9 @@ function zimbraSingle_CreateAccount($params) {
         return 'Error: could not find serviceclass ' . $params['configoption1'];
     }
     $attrs['zimbraCOSId'] = $cosID;
+	$baseQuota = $params['configoption2'] ? $params['configoption2'] : 1;
+    $addonQuota = $params['configoptions']['addonQuota'] ? $params['configoptions']['addonQuota'] : 0;
+    $attrs['zimbraMailQuota'] = ($baseQuota + $addonQuota) * 1048576;
     $zimbraID = $apiAccountManager->createAccount($params['username'], $params['password'], $attrs);
     if(is_a($zimbraID, 'Exception')) {
         logModuleCall(
@@ -703,6 +704,13 @@ function zimbraSingle_ConfigOptions($params) {
         'Options' => implode(',', $cosNames),
         'Description' => 'Select COS',
     );
+    $configOptions['quota'] = array(
+        'Type' => 'text',
+        'Description' => 'Basis Mailbox-Quota für dieses Produkt in GB',
+        'Default' => '5',
+        'Size' => '3',
+        'FriendlyName' => 'Mailbox Quota',
+    );
     return $configOptions;
 }
 
@@ -743,7 +751,7 @@ function zimbraSingle_ServiceSingleSignOn($params) {
             __FUNCTION__,
             $params,
             'Error : could not fetch options for ' . $params['customfields']['maildomain'],
-            $domainOptions->getMessage()
+            $domainOptions
         );
         return array(
             'success' => false,