Пример #1
0
 public function formatStoreRecord($record, $model, $store)
 {
     $record['user_name'] = $model->user ? $model->user->name : 'unknown';
     $domainInfo = \GO\Postfixadmin\Model\Mailbox::model()->find(\GO\Base\Db\FindParams::newInstance()->single()->select('COUNT(*) AS mailbox_count, SUM(`usage`) AS `usage`, SUM(`quota`) AS `quota`')->criteria(\GO\Base\Db\FindCriteria::newInstance()->addCondition('domain_id', $model->id)));
     $domainInfo2 = \GO\Postfixadmin\Model\Alias::model()->find(\GO\Base\Db\FindParams::newInstance()->single()->select('COUNT(*) AS alias_count')->criteria(\GO\Base\Db\FindCriteria::newInstance()->addCondition('domain_id', $model->id)));
     $record['usage'] = \GO\Base\Util\Number::formatSize($domainInfo->usage * 1024);
     $record['quota'] = \GO\Base\Util\Number::formatSize($model->total_quota * 1024);
     $record['used_quota'] = \GO\Base\Util\Number::formatSize($domainInfo->quota * 1024);
     $record['mailbox_count'] = $domainInfo->mailbox_count . ' / ' . $model->max_mailboxes;
     $record['alias_count'] = $domainInfo2->alias_count . ' / ' . $model->max_aliases;
     return $record;
 }
Пример #2
0
 protected function beforeSubmit(&$response, &$model, &$params)
 {
     if (!\GO::user()) {
         if (empty($params['serverclient_token']) || $params['serverclient_token'] != \GO::config()->serverclient_token) {
             throw new \GO\Base\Exception\AccessDenied();
         } else {
             \GO::session()->runAsRoot();
         }
     }
     if (isset($params['domain_id'])) {
         $domainModel = \GO\Postfixadmin\Model\Domain::model()->findByPk($params['domain_id']);
     } else {
         $domainModel = \GO\Postfixadmin\Model\Domain::model()->findSingleByAttribute("domain", $params['domain']);
         //serverclient module doesn't know the domain_id. It sends the domain name as string.
         if (!$domainModel) {
             //todo create new domain
             $domainModel = new \GO\Postfixadmin\Model\Domain();
             $domainModel->domain = $params['domain'];
             $domainModel->user_id = \GO::user()->id;
             $domainModel->save();
         }
         $params['domain_id'] = $domainModel->id;
         $model->quota = $domainModel->default_quota;
     }
     if (isset($params['quota'])) {
         $model->quota = \GO\Base\Util\Number::unlocalize($params['quota']) * 1024;
         unset($params['quota']);
     }
     if ($params['password'] != $params['password2']) {
         throw new \Exception(\GO::t('passwordMatchError'));
     }
     if (empty($params['password'])) {
         unset($params['password']);
     }
     if (isset($params['username'])) {
         $params['username'] .= '@' . $domainModel->domain;
     }
     if ($model->isNew) {
         //			$aliasModel = \GO\Postfixadmin\Model\Alias::model()->findSingleByAttribute('address', $params['username']);
         //			if (empty($aliasModel)) {
         //				$aliasModel = new \GO\Postfixadmin\Model\Alias();
         //			}
         //			$aliasModel->domain_id = $params['domain_id'];
         //			$aliasModel->address = $params['username'];
         //			$aliasModel->goto = $params['username'];
         //			$aliasModel->save();
         if (!empty($params['alias']) && $params['alias'] != $params['username']) {
             $aliasModel = \GO\Postfixadmin\Model\Alias::model()->findSingleByAttribute('address', $params['alias']);
             if (empty($aliasModel)) {
                 $aliasModel = new \GO\Postfixadmin\Model\Alias();
             }
             $aliasModel->domain_id = $params['domain_id'];
             $aliasModel->address = $params['alias'];
             $aliasModel->goto = $params['username'];
             $aliasModel->save();
         }
     }
 }