|
|
@@ -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')
|