Kaynağa Gözat

recode Model & Actions

andre 2 yıl önce
ebeveyn
işleme
ce658d3a64

+ 47 - 126
app/Libs/Zimbra/Components/Api/Soap/Actions/Ressource.php

@@ -14,7 +14,7 @@ use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Helper
  * Time: 13:46
  * Class Account
  */
-class Account extends AbstractAction
+class Ressource extends AbstractAction
 {
 
     public function read()
@@ -23,24 +23,24 @@ class Account extends AbstractAction
     }
 
     /**
-     * @description create account in Zimbra API
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account
+     * @description create ressource in Zimbra API
+     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource
      * @return bool|void
      */
-    public function create(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
+    public function create(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Reccource $ressource)
     {
         /**
          *
          */
         $params = [
-            new SoapParam($account->getName(), "name"),
-            new SoapParam($account->getPassword(), "password"),
+            new SoapParam($ressource->getName(), "name"),
+            new SoapParam($ressource->getPassword(), "password"),
         ];
 
         /**
-         * add account params
+         * add ressource params
          */
-        foreach ($account->getAttrs() as $key => $value)
+        foreach ($ressource->getAttrs() as $key => $value)
         {
             $params[] = new SoapVar('<ns1:a n="' . $key . '">' . $value . '</ns1:a>', XSD_ANYXML);
         }
@@ -48,16 +48,16 @@ class Account extends AbstractAction
         /**
          * run request
          */
-        $result = $this->connection->request("CreateAccountRequest", $params);
+        $result = $this->connection->request("CreateCalendarResourceRequest", $params);
         $this->setLastResult($result);
 
         /**
          * load response to model
          */
-        if($accountData = $result->getResponseBody()['CREATEACCOUNTRESPONSE']['ACCOUNT'])
+        if($ressourceData = $result->getResponseBody()['CREATECALENDARRESOURCERESPONSE']['CALRESOURCE'])
         {
-            $account->fill($accountData);
-            return $account;
+            $ressource->fill($ressourceData);
+            return $ressource;
         }
 
         $this->setError($result->getLastError());
@@ -65,64 +65,41 @@ class Account extends AbstractAction
     }
 
     /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\AccountAlias $alias
-     * @return \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\AccountAlias
+     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource
+     * @return bool|\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource
      */
-    public function createAlias(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\AccountAlias $alias)
+    public function update(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource)
     {
         $params = [
-            new SoapParam($alias->getAccountId(), "id"),
-            new SoapParam($alias->getAlias(), "alias"),
-        ];
-
-        $result = $this->connection->request("AddAccountAliasRequest", $params);
-        $this->setLastResult($result);
-
-        if(!$result->getLastError())
-        {
-            return $alias;
-        }
-
-        $this->setError($result->getLastError());
-        return false;
-    }
-
-    /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account
-     * @return bool|\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account
-     */
-    public function update(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
-    {
-        $params = [
-            new SoapParam($account->getId(), "id"),
+            new SoapParam($ressource->getId(), "id"),
         ];
 
         /**
-         * add account params
+         * add ressource params
          */
-        foreach ($account->getAttrs() as $key => $value)
+        foreach ($ressource->getAttrs() as $key => $value)
         {
             $params[] = new SoapVar('<ns1:a n="' . $key . '">' . $value . '</ns1:a>', XSD_ANYXML);
         }
 
-        $result = $this->connection->request("ModifyAccountRequest", $params);
+        $result = $this->connection->request("ModifyCalendarResourceRequest", $params);
         $this->setLastResult($result);
 
-        if($accountData = $result->getResponseBody()['MODIFYACCOUNTRESPONSE']['ACCOUNT'])
+        if($ressourceData = $result->getResponseBody()['MODIFYCALENDARRESOURCEREQUEST']['CALRESOURCE'])
         {
-            $account->fill($accountData);
-            return $account;
+            $ressource->fill($ressourceData);
+            return $ressource;
         }
 
         $this->setError($result->getLastError());
         return false;
     }
 
-    public function setPassword(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
+    public function setPassword(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource)
     {
         $params = [
-            new SoapParam($account->getId(), "id"),
-            new SoapParam($account->getPassword(), "newPassword"),
+            new SoapParam($ressource->getId(), "id"),
+            new SoapParam($ressource->getPassword(), "newPassword"),
         ];
 
         $result = $this->connection->request("SetPasswordRequest", $params);
@@ -139,16 +116,16 @@ class Account extends AbstractAction
     }
 
     /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account
+     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource
      * @return bool
      */
-    public function delete(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
+    public function delete(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource)
     {
         $params = [
-            new SoapParam($account->getId(), "id"),
+            new SoapParam($ressource->getId(), "id"),
         ];
 
-        $result = $this->connection->request("DeleteAccountRequest", $params);
+        $result = $this->connection->request("DeleteCalendarResourceRequest", $params);
         $this->setLastResult($result);
 
         if($result->getLastError())
@@ -160,54 +137,30 @@ class Account extends AbstractAction
         return true;
     }
 
-    /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\AccountAlias $alias
-     * @return bool
-     */
-    public function deleteAlias(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\AccountAlias $alias)
-    {
-        $params = [
-            new SoapParam($alias->getAccountId(), "id"),
-            new SoapParam($alias->getAlias(), "alias"),
-        ];
-
-        $result = $this->connection->request("RemoveAccountAliasRequest", $params);
-        $this->setLastResult($result);
-
-        if(!$result->getLastError())
-        {
-            return true;
-        }
-
-        $this->setError($result->getLastError());
-        return false;
-
-    }
-
     /**
      * @param $name
      * @return \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Response
      */
-    public function getAccountId($name)
+    public function getRessourceId($name)
     {
         $params = [
-            new SoapVar('<ns1:account by="name">' . $name . '</ns1:account>', XSD_ANYXML),
+            new SoapVar('<ns1:calresource by="name">' . $name . '</ns1:calresource>', XSD_ANYXML),
         ];
 
-        return $this->connection->cleanResponse()->request("GetAccountInfoRequest", $params);
+        return $this->connection->cleanResponse()->request("GetCalendarResourceRequest", $params);
 
     }
 
     /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account
+     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource
      * @return \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Response
      */
-    public function getAccountInfo(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
+    public function getRessourceInfo(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource)
     {
-        if($value = $account->getId())
+        if($value = $ressource->getId())
         {
             $type = 'id';
-        }elseif($value =$account->getName())
+        }elseif($value =$ressource->getName())
         {
             $type = 'name';
         }
@@ -215,65 +168,33 @@ class Account extends AbstractAction
         $result = null;
 
         $params = [
-            new SoapVar('<ns1:account by="' . $type . '">' . $value . '</ns1:account>', XSD_ANYXML),
+            new SoapVar('<ns1:calresource by="' . $type . '">' . $value . '</ns1:calresource>', XSD_ANYXML),
         ];
 
-        return $this->connection->request("GetAccountInfoRequest", $params);
-    }
-
-    /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account
-     * @return \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Response
-     */
-    public function delegateAuth(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
-    {
-        if($value = $account->getId())
-        {
-            $type = 'id';
-        }elseif($value =$account->getName())
-        {
-            $type = 'name';
-        }
-
-        $result = null;
-
-        $params = [
-            new SoapVar('<ns1:account by="' . $type . '">' . $value . '</ns1:account>', XSD_ANYXML),
-        ];
-
-        $result = $this->connection->cleanResponse()->request("DelegateAuthRequest", $params);
-        $this->setLastResult($result);
-
-        if($result->getLastError())
-        {
-            $this->setError($result->getLastError());
-            return false;
-        }
-
-        return $result;
+        return $this->connection->request("GetCalendarResourceRequest", $params);
     }
 
     /**
-     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account
+     * @param \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource
      * @return \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Response
      */
-    public function getAccountOptions(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account $account)
+    public function getRessourceOptions(\ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Ressource $ressource)
     {
-        if($value = $account->getId())
+        if($value = $ressource->getId())
         {
             $type = 'id';
-        }elseif($value =$account->getName())
+        }elseif($value =$ressource->getName())
         {
             $type = 'name';
         }
 
         $params = [
-            new SoapVar('<ns1:account by="' . $type . '">' . $value . '</ns1:account>', XSD_ANYXML),
+            new SoapVar('<ns1:calresource by="' . $type . '">' . $value . '</ns1:calresource>', XSD_ANYXML),
         ];
 
         return  $this->connection
             ->cleanResponse()
-            ->request("GetAccountRequest", $params);
+            ->request("GetCalendarResourceRequest", $params);
     }
 
     /**
@@ -293,11 +214,11 @@ class Account extends AbstractAction
         $params = [
             new SoapVar('<ns1:domain by="' . $type . '">' . $value . '</ns1:domain>', XSD_ANYXML),
         ];
-        $result = $this->connection->request("GetAllAccountsRequest", $params);
+        $result = $this->connection->request("GetAllCalendarResourcesRequest", $params);
         return $result;
     }
 
-    public function getAllAccounts($idOrNameDomain, $type = "auto")
+    public function getAllRessources($idOrNameDomain, $type = "auto")
     {
         if ($type == "auto")
         {
@@ -314,7 +235,7 @@ class Account extends AbstractAction
             new SoapVar('<ns1:domain by="' . $realType . '">' . $idOrNameDomain . '</ns1:domain>', XSD_ANYXML),
         ];
 
-        return  $this->connection->request("GetAllAccountsRequest", $params);
+        return  $this->connection->request("GetAllCalendarResourcesRequest", $params);
 
     }
 

+ 0 - 10
app/Libs/Zimbra/Components/Api/Soap/Helpers/RessourceHelper.php

@@ -33,14 +33,4 @@ class RessourceHelper
 
         return date($format, strtotime($tmpDate));
     }
-
-    /**
-     * @param $quote
-     * @return float|int|string
-     */
-    public static function getQuotaAsMb($quote)
-    {
-        return isset($quote) ? ($quote / Size::B_TO_MB)  : ProductParams::SIZE_UNLIMITED;
-    }
-
 }

+ 21 - 80
app/Libs/Zimbra/Components/Api/Soap/Models/Ressource.php

@@ -18,32 +18,32 @@ class Ressource extends AbstractModel
     /**
      * Ressource Attributes
      */
-    const ATTR_FIRSTNAME        = 'givenName';
-    const ATTR_LASTNAME         = 'sn';
-    const ATTR_PHONE            = 'telephoneNumber';
-    const ATTR_MOBILE_PHONE     = 'mobile';
-    const ATTR_FAX              = 'facsimileTelephoneNumber';
-    const ATTR_PAGER            = 'pager';
-    const ATTR_HOME_PHONE       = 'homePhone';
-    const ATTR_COUNTRY          = 'co';
-    const ATTR_STATE            = 'st';
-    const ATTR_POSTAL_CODE      = 'postalCode';
-    const ATTR_CITY             = 'l';
-    const ATTR_STREET           = 'street';
-    const ATTR_COMPANY          = 'company';
-    const ATTR_PROF_TITLE       = 'title';
-    const ATTR_ACCOUNT_STATUS   = 'zimbraRessourceStatus';
-    const ATTR_DISPLAY_NAME     = 'displayName';
-    const ATTR_MAIL_QUOTA       = 'zimbraMailQuota';
-    const ATTR_ALIAS            = 'zimbraMailAlias';
-    const ATTR_CLASS_OF_SERVICE_ID = 'zimbraCOSId';
+    const ATTR_NAME         = 'name';
+    const ATTR_STATUS       = 'zimbraAccountStatus';
+    const ATTR_TYPE         = 'zimbraCalResType';
+    const ATTR_DESC         = 'description';
+    const ATTR_NOTE         = 'zimbraNotes';
+    const ATTR_CONT         = 'zimbraCalResContactName';
+    const ATTR_CONT_EMAIL   = 'zimbraCalResContactEmail';
+    const ATTR_CONT_PHONE   = 'zimbraCalResContactPhone';
+    const ATTR_SITE         = 'zimbraCalResSite';
+    const ATTR_BUILDING     = 'zimbraCalResBuilding';
+    const ATTR_FLOOR        = 'zimbraCalResFloor';
+    const ATTR_ROOM         = 'zimbraCalResRoom';
+    const ATTR_CAPACITY     = 'zimbraCalResCapacity';
+    const ATTR_STREET       = 'street';
+    const ATTR_TOWN         = 'l';
+    const ATTR_POSTAL_CODE  = 'postalCode';
+    const ATTR_STATE        = 'co';
+    const ATTR_COUNTRY      = 'st';
+    const ATTR_DISPLAY_NAME = 'displayName';
+    const ATTR_AUTO         = 'zimbraCalResAutoAcceptDecline';
+    const ATTR_BUSY         = 'zimbraCalResAutoDeclineIfBusy';
 
     protected $id;
     protected $name;
     protected $password;
     protected $attrs;
-    protected $limit;
-    protected $used;
 
     /**
      * @return mixed
@@ -99,42 +99,6 @@ class Ressource extends AbstractModel
         return $this;
     }
 
-    /**
-     * @return mixed
-     */
-    public function getLimit()
-    {
-        return $this->limit;
-    }
-
-    /**
-     * @param $limit
-     * @return $this
-     */
-    public function setLimit($limit = 0)
-    {
-        $this->limit = $limit;
-        return $this;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getUsed()
-    {
-        return $this->used;
-    }
-
-    /**
-     * @param $used
-     * @return $this
-     */
-    public function setUsed($used = 0)
-    {
-        $this->used = $used;
-        return $this;
-    }
-
     /**
      * @return mixed
      */
@@ -173,27 +137,4 @@ class Ressource extends AbstractModel
         return $this;
     }
 
-    /**
-     * @return mixed
-     */
-    public function getCosId()
-    {
-        return $this->getDataResourceA(self::ATTR_CLASS_OF_SERVICE_ID);
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getAliases()
-    {
-        foreach($this->resources['a'] as $res)
-        {
-            if($res['N'] === self::ATTR_ALIAS)
-            {
-                $tmp[$res['DATA']] =  $res['DATA'];
-            }
-        }
-        return $tmp;
-    }
-
 }

+ 26 - 122
app/Libs/Zimbra/Components/Api/Soap/Repository/Ressources.php

@@ -20,10 +20,8 @@ use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models
  */
 class Ressources extends AbstractRepository
 {
-    const NO_COS_INDEX = 'default';
-
     /**
-     * get all account for domain
+     * get all ressource for domain
      * @param $name
      * @return mixed
      */
@@ -32,19 +30,19 @@ class Ressources extends AbstractRepository
         $domain = new Domain();
         $domain->setName($name);
 
-        $result = $this->getClient()->account->getAllByDomain($domain);
+        $result = $this->getClient()->ressource->getAllByDomain($domain);
 
-        $accounts = $result->getResponseBody()['GETALLACCOUNTSRESPONSE']['ACCOUNT'];
+        $ressources = $result->getResponseBody()['GETALLressourceSRESPONSE']['ressource'];
         /**
-         * API return one or araay with accounts
+         * API return one or araay with ressources
          */
         $tmp = [];
-        if(isset($accounts['NAME']))
+        if(isset($ressources['NAME']))
         {
-            $tmpRessource =  new Ressource($accounts);
+            $tmpRessource =  new Ressource($ressources);
 
             /**
-             * skip ZiImbra default account
+             * skip ZiImbra default ressource
              */
             if (strpos($tmpRessource->getName(), 'galsync@') !== false)
             {
@@ -52,12 +50,12 @@ class Ressources extends AbstractRepository
             }
             $tmp[$tmpRessource->getId()] = $tmpRessource;
         }else{
-            foreach($accounts as $account)
+            foreach($ressources as $ressource)
             {
-                $tmpRessource =  new Ressource($account);
+                $tmpRessource =  new Ressource($ressource);
 
                 /**
-                 * skip ZiImbra default account
+                 * skip ZiImbra default ressource
                  */
                 if (strpos($tmpRessource->getName(), 'galsync@') !== false)
                 {
@@ -76,41 +74,22 @@ class Ressources extends AbstractRepository
      * @param $name
      * @return mixed
      */
-    public function getGroupedByCos($name)
+    public function getRessources($name)
     {
-        $accounts = $this->getByDomainName($name);
-        foreach($accounts as $account)
-        {
-            /* @var $account Ressource*/
-            $cosId = $account->getDataResourceA(Ressource::ATTR_CLASS_OF_SERVICE_ID);
-            $key = $cosId ? $cosId : self::NO_COS_INDEX;
-
-            $tmp[$key][] = $account;
-        }
+        $ressources = $this->getByDomainName($name);
 
-        return $tmp;
-    }
-
-    /**
-     * @param $name
-     * @return mixed
-     */
-    public function getMailboxes($name)
-    {
-        $accounts = $this->getByDomainName($name);
-
-        foreach($accounts as $key => $account)
+        foreach($ressources as $key => $ressource)
         {
-            /* @var $account Ressource*/
-            if (strpos($account->getName(), 'galsync@') !== false)
+            /* @var $ressource Ressource*/
+            if (strpos($ressource->getName(), 'galsync@') !== false)
             {
-                unset($accounts[$key]);
+                unset($ressources[$key]);
                 continue;
             }
 
         }
 
-        return $accounts;
+        return $ressources;
     }
 
     /**
@@ -119,16 +98,16 @@ class Ressources extends AbstractRepository
      */
     public function getRessourceInfoById($id)
     {
-        $account = new Ressource();
-        $account->setId($id);
+        $ressource = new Ressource();
+        $ressource->setId($id);
 
-        $result = $this->getClient()->account->getRessourceInfo($account);
+        $result = $this->getClient()->ressource->getRessourceInfo($ressource);
 
         if(!$result->getLastError())
         {
             $body = $result->getResponseBody();
-            $result =  $account->fill($body['GETACCOUNTINFORESPONSE']);
-            $result->setName($body['GETACCOUNTINFORESPONSE']['NAME']['DATA']);
+            $result =  $ressource->fill($body['GETressourceINFORESPONSE']);
+            $result->setName($body['GETressourceINFORESPONSE']['NAME']['DATA']);
             return $result;
         }
 
@@ -141,93 +120,18 @@ class Ressources extends AbstractRepository
      */
     public function getRessourceOptionsById($id)
     {
-        $account = new Ressource();
-        $account->setId($id);
+        $ressource = new Ressource();
+        $ressource->setId($id);
 
-        $result = $this->getClient()->account->getRessourceOptions($account);
+        $result = $this->getClient()->ressource->getRessourceOptions($ressource);
 
         if(!$result->getLastError())
         {
             $body = $result->getResponseBody();
-            return $account->fill($body['GETACCOUNTRESPONSE']['ACCOUNT']);
+            return $ressource->fill($body['GETressourceRESPONSE']['ressource']);
         }
 
         return $result;
     }
 
-    /**
-     * @param $name
-     * @return mixed
-     */
-    public function getUsages($name)
-    {
-        $domain = new Domain();
-        $domain->setName($name);
-
-        $result = $this->getClient()->domain->getDomainUsages($domain);
-
-        $accounts = $result->getResponseBody()['GETQUOTAUSAGERESPONSE']['ACCOUNT'];
-
-        /**
-         * API return one or araay with accounts
-         */
-        if(isset($accounts['NAME']))
-        {
-            $tmpRessource =  new Ressource($accounts);
-            $tmp[$tmpRessource->getId()] = $tmpRessource;
-        }else{
-            foreach($accounts as $account)
-            {
-                $tmpRessource =  new Ressource($account);
-                $tmp[$tmpRessource->getId()] = $tmpRessource;
-            }
-        }
-
-        return $tmp;
-    }
-
-    /**
-     * @description return usages of all accounts
-     * @param $name
-     * @return float
-     */
-    public function getFullUsages($name)
-    {
-        /**
-         * count Usages
-         */
-        foreach($this->getUsages($name) as $acc)
-        {
-            $used += (float) $acc->getUsed();
-        }
-        $used = round($used / Size::B_TO_MB, 2);
-
-        return $used;
-    }
-
-    /**
-     * @param $domain
-     * @return array
-     */
-    public function getRessourceAliasesByDomainName($domain)
-    {
-        $accounts = $this->getByDomainName($domain);
-
-        foreach($accounts as $account)
-        {
-            /* @var $account Ressource */
-            foreach($account->getAliases() as $al)
-            {
-
-                $alias = new RessourceAlias();
-                $alias->setRessourceId($account->getId());
-                $alias->setRessourceName($account->getName());
-                $alias->setAlias($al);
-                $data[] = $alias;
-            }
-
-        }
-        return $data;
-    }
-
 }

+ 35 - 61
app/Libs/Zimbra/Components/Api/Soap/Services/Create/CreateRessource.php

@@ -48,35 +48,6 @@ class CreateRessource extends ApiService
             return false;
         }
 
-        /**
-         * check full usages of domains
-         */
-        $maxDomainQuota = $this->productManager->get('domainMaxSize') * Size::B_TO_GB;
-        $usages = $this->api->repository()->accounts->getFullUsages($this->formData['domain']);
-
-        if($maxDomainQuota !== Size::UNLIMITED && $usages >= $maxDomainQuota)
-        {
-            $this->setError("Domain size limit has been reached");
-            return false;
-        }
-
-        /**
-         *
-         * Check if accounts limit has been reached
-         */
-        $hosting = $this->productManager->getHosting();
-        $configOption = new ConfigOptionsHelper;
-        $acc_addObj = $configOption->getConfigurableOption($hosting->id, 'acc_add');
-        $acc_add = $acc_addObj->qty ? $acc_addObj->qty : 0;
-        $accountLimit = $this->productManager->get('acc_base') + $acc_add;
-        $mailBoxes = $this->getMailboxes();
-
-        if(count($mailBoxes) >= $accountLimit && $accountLimit !== ProductParams::SIZE_UNLIMITED && 'editRessourceForm' !== $this->getRequestValue('loadData'))
-        {
-            $this->setError('There are too many mailboxes');
-            return false;
-        }
-
         /**
          *
          */
@@ -86,10 +57,10 @@ class CreateRessource extends ApiService
     /**
      * @return mixed
      */
-    protected function getMailboxes()
+    protected function getRessources()
     {
-        $mailBoxes = $this->api->repository()->accounts->getMailboxes($this->formData['domain']);
-        return $mailBoxes;
+        $ressources = $this->api->repository()->ressources->getRessources($this->formData['domain']);
+        return $ressources;
     }
 
     /**
@@ -97,41 +68,44 @@ class CreateRessource extends ApiService
      */
     protected function getModel()
     {
-        $accountSize = $this->productManager->get(ProductParams::ACCOUNT_SIZE);
         /**
-         * create new account in zimbra
+         * create new ressource in zimbra
          */
-        $account = new Ressource();
-        $account->setName($this->formData['username'].'@'.$this->formData['domain']);
-        $account->setPassword(html_entity_decode($this->formData['password']), ENT_QUOTES);
+        $ressource = new Ressource();
+        $ressource->setName($this->formData['name'].'@'.$this->formData['domain']);
+        $ressource->setPassword(html_entity_decode($this->formData['password']), ENT_QUOTES);
         /**
-         *  set account attributes
+         *  set ressource attributes
          */
-        $account->setAttr(Ressource::ATTR_FIRSTNAME, $this->formData['firstname']);
-        $account->setAttr(Ressource::ATTR_LASTNAME, $this->formData['lastname']);
-        $account->setAttr(Ressource::ATTR_PHONE, $this->formData['phone']);
-        $account->setAttr(Ressource::ATTR_MOBILE_PHONE, $this->formData['mobile_phone']);
-        $account->setAttr(Ressource::ATTR_FAX, $this->formData['fax']);
-        $account->setAttr(Ressource::ATTR_PAGER, $this->formData['pager']);
-        $account->setAttr(Ressource::ATTR_HOME_PHONE, $this->formData['home_phone']);
-        $account->setAttr(Ressource::ATTR_COUNTRY, $this->formData['country']);
-        $account->setAttr(Ressource::ATTR_STATE, $this->formData['state']);
-        $account->setAttr(Ressource::ATTR_PROF_TITLE, $this->formData['title']);
-        $account->setAttr(Ressource::ATTR_POSTAL_CODE, $this->formData['post_code']);
-        $account->setAttr(Ressource::ATTR_CITY, $this->formData['city']);
-        $account->setAttr(Ressource::ATTR_STREET, $this->formData['street']);
-        $account->setAttr(Ressource::ATTR_COMPANY, $this->formData['company']);
-        $account->setAttr(Ressource::ATTR_ACCOUNT_STATUS, $this->formData['status']);
-        $account->setAttr(Ressource::ATTR_DISPLAY_NAME, $this->formData['display_name']);
-        $account->setAttr(Ressource::ATTR_MAIL_QUOTA, $accountSize * Size::B_TO_MB);
+        $ressource->setAttr(Ressource::ATTR_NAME, $this->formData['name']);
+        $ressource->setAttr(Ressource::ATTR_STATUS, $this->formData['status']);
+        $ressource->setAttr(Ressource::ATTR_TYPE, $this->formData['type']);
+        $ressource->setAttr(Ressource::ATTR_DESC, $this->formData['description']);
+        $ressource->setAttr(Ressource::ATTR_NOTE, $this->formData['notes']);
+        $ressource->setAttr(Ressource::ATTR_CONT, $this->formData['contact']);
+        $ressource->setAttr(Ressource::ATTR_CONT_EMAIL, $this->formData['contact_mail']);
+        $ressource->setAttr(Ressource::ATTR_CONT_PHONE, $this->formData['contact_phone']);
+        $ressource->setAttr(Ressource::ATTR_SITE, $this->formData['site']);
+        $ressource->setAttr(Ressource::ATTR_BUILDING, $this->formData['building']);
+        $ressource->setAttr(Ressource::ATTR_FLOOR, $this->formData['floor']);
+        $ressource->setAttr(Ressource::ATTR_ROOM, $this->formData['room']);
+        $ressource->setAttr(Ressource::ATTR_CAPACITY, $this->formData['capacity']);
+        $ressource->setAttr(Ressource::ATTR_STREET, $this->formData['street']);
+        $ressource->setAttr(Ressource::ATTR_TOWN, $this->formData['town']);
+        $ressource->setAttr(Ressource::ATTR_POSTAL_CODE, $this->formData['post_code']);
+        $ressource->setAttr(Ressource::ATTR_STATE, $this->formData['state']);
+        $ressource->setAttr(Ressource::ATTR_COUNTRY, $this->formData['country']);
+        $ressource->setAttr(Ressource::ATTR_DISPLAY_NAME, $this->formData['display_name']);
+        $ressource->setAttr(Ressource::ATTR_AUTO, $this->formData['auto']);
+        $ressource->setAttr(Ressource::ATTR_BUSY, $this->formData['busy']);
 
         foreach($this->productManager->getZimbraConfiguration() as $key => $value)
         {
             $value = $value === ProductParams::SWITCHER_ENABLED ? Zimbra::ATTR_ENABLED : Zimbra::ATTR_DISABLED;
-            $account->setAttr($key, $value);
+            $ressource->setAttr($key, $value);
         }
 
-        return $account;
+        return $ressource;
     }
 
     /**
@@ -145,16 +119,16 @@ class CreateRessource extends ApiService
         $model = $this->getModel();
 
         /**
-         * create account in ZIMBRA
+         * create ressource in ZIMBRA
          */
-        $result = $this->api->account->create($model);
+        $result = $this->api->ressource->create($model);
 
         /**
-         * problem with create account
+         * problem with create ressource
          */
         if(!$result)
         {
-            $this->setError($this->api->account->getLastResult()->getLastErrorCode());
+            $this->setError($this->api->ressource->getLastResult()->getLastErrorCode());
             return false;
         }
 

+ 6 - 6
app/Libs/Zimbra/Components/Api/Soap/Services/Delete/DeleteRessource.php

@@ -17,23 +17,23 @@ class DeleteRessource extends ApiService
 {
 
     /**
-     * remove account in APi
+     * remove ressource in APi
      *
      * @return bool|mixed
      */
     public function process()
     {
-        $account = new Ressource();
-        $account->setId($this->formData['id']);
+        $ressource = new Ressource();
+        $ressource->setId($this->formData['id']);
 
-        $result = $this->api->account->delete($account);
+        $result = $this->api->ressource->delete($ressource);
 
         /**
-         * problem with remove account
+         * problem with remove ressource
          */
         if(!$result)
         {
-            $this->setError($this->api->account->getLastResult()->getLastErrorCode());
+            $this->setError($this->api->ressource->getLastResult()->getLastErrorCode());
             return false;
         }
 

+ 30 - 24
app/Libs/Zimbra/Components/Api/Soap/Services/Update/UpdateRessource.php

@@ -27,16 +27,16 @@ class UpdateRessource extends CreateRessource
         $model = $this->getModel();
 
         /**
-         * update account in ZIMBRA
+         * update ressource in ZIMBRA
          */
-        $result = $this->api->account->update($model);
+        $result = $this->api->ressource->update($model);
 
         /**
-         * problem with create account
+         * problem with create ressource
          */
         if(!$result)
         {
-            $this->setError($this->api->account->getLastResult()->getLastErrorCode());
+            $this->setError($this->api->ressource->getLastResult()->getLastErrorCode());
             return false;
         }
 
@@ -48,30 +48,36 @@ class UpdateRessource extends CreateRessource
      */
     public function getModel()
     {
-        $account = new Ressource();
+        $ressource = new Ressource();
         /**
-         *  set account attributes
+         *  set ressource attributes
          */
-        $account->setId($this->formData['id']);
+        $ressource->setId($this->formData['id']);
 
-        $account->setAttr(Ressource::ATTR_FIRSTNAME, $this->formData['firstname']);
-        $account->setAttr(Ressource::ATTR_LASTNAME, $this->formData['lastname']);
-        $account->setAttr(Ressource::ATTR_PHONE, $this->formData['phone']);
-        $account->setAttr(Ressource::ATTR_MOBILE_PHONE, $this->formData['mobile_phone']);
-        $account->setAttr(Ressource::ATTR_FAX, $this->formData['fax']);
-        $account->setAttr(Ressource::ATTR_PAGER, $this->formData['pager']);
-        $account->setAttr(Ressource::ATTR_HOME_PHONE, $this->formData['home_phone']);
-        $account->setAttr(Ressource::ATTR_COUNTRY, $this->formData['country']);
-        $account->setAttr(Ressource::ATTR_STATE, $this->formData['state']);
-        $account->setAttr(Ressource::ATTR_PROF_TITLE, $this->formData['title']);
-        $account->setAttr(Ressource::ATTR_POSTAL_CODE, $this->formData['post_code']);
-        $account->setAttr(Ressource::ATTR_CITY, $this->formData['city']);
-        $account->setAttr(Ressource::ATTR_STREET, $this->formData['street']);
-        $account->setAttr(Ressource::ATTR_COMPANY, $this->formData['company']);
-        $account->setAttr(Ressource::ATTR_ACCOUNT_STATUS, $this->formData['status']);
-        $account->setAttr(Ressource::ATTR_DISPLAY_NAME, $this->formData['display_name']);
+        $ressource->setAttr(Ressource::ATTR_NAME, $this->formData['name']);
+        $ressource->setAttr(Ressource::ATTR_STATUS, $this->formData['status']);
+        $ressource->setAttr(Ressource::ATTR_DISPLAY_NAME, $this->formData['name']);
+        $ressource->setAttr(Ressource::ATTR_TYPE, $this->formData['type']);
+        $ressource->setAttr(Ressource::ATTR_DESC, $this->formData['description']);
+        $ressource->setAttr(Ressource::ATTR_NOTE, $this->formData['notes']);
+        $ressource->setAttr(Ressource::ATTR_CONT, $this->formData['contact']);
+        $ressource->setAttr(Ressource::ATTR_CONT_EMAIL, $this->formData['contact_mail']);
+        $ressource->setAttr(Ressource::ATTR_CONT_PHONE, $this->formData['contact_phone']);
+        $ressource->setAttr(Ressource::ATTR_SITE, $this->formData['site']);
+        $ressource->setAttr(Ressource::ATTR_BUILDING, $this->formData['building']);
+        $ressource->setAttr(Ressource::ATTR_FLOOR, $this->formData['floor']);
+        $ressource->setAttr(Ressource::ATTR_ROOM, $this->formData['room']);
+        $ressource->setAttr(Ressource::ATTR_CAPACITY, $this->formData['capacity']);
+        $ressource->setAttr(Ressource::ATTR_STREET, $this->formData['street']);
+        $ressource->setAttr(Ressource::ATTR_TOWN, $this->formData['town']);
+        $ressource->setAttr(Ressource::ATTR_POSTAL_CODE, $this->formData['post_code']);
+        $ressource->setAttr(Ressource::ATTR_STATE, $this->formData['state']);
+        $ressource->setAttr(Ressource::ATTR_COUNTRY, $this->formData['country']);
+        $ressource->setAttr(Ressource::ATTR_DISPLAY_NAME, $this->formData['display_name']);
+        $ressource->setAttr(Ressource::ATTR_AUTO, $this->formData['auto']);
+        $ressource->setAttr(Ressource::ATTR_BUSY, $this->formData['busy']);
 
-        return $account;
+        return $ressource;
 
     }
 }