setName($name); $result = $this->getClient()->account->getAllByDomain($domain); $accounts = $result->getResponseBody()['GETALLACCOUNTSRESPONSE']['ACCOUNT']; /** * API return one or araay with accounts */ $tmp = []; if(isset($accounts['NAME'])) { $tmpRessource = new Ressource($accounts); /** * skip ZiImbra default account */ if (strpos($tmpRessource->getName(), 'galsync@') !== false) { return []; } $tmp[$tmpRessource->getId()] = $tmpRessource; }else{ foreach($accounts as $account) { $tmpRessource = new Ressource($account); /** * skip ZiImbra default account */ if (strpos($tmpRessource->getName(), 'galsync@') !== false) { continue; } $tmp[$tmpRessource->getId()] = $tmpRessource; } } return $tmp; } /** * @param $name * @return mixed */ public function getGroupedByCos($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; } return $tmp; } /** * @param $name * @return mixed */ public function getMailboxes($name) { $accounts = $this->getByDomainName($name); foreach($accounts as $key => $account) { /* @var $account Ressource*/ if (strpos($account->getName(), 'galsync@') !== false) { unset($accounts[$key]); continue; } } return $accounts; } /** * @param $id * @return Ressource */ public function getRessourceInfoById($id) { $account = new Ressource(); $account->setId($id); $result = $this->getClient()->account->getRessourceInfo($account); if(!$result->getLastError()) { $body = $result->getResponseBody(); $result = $account->fill($body['GETACCOUNTINFORESPONSE']); $result->setName($body['GETACCOUNTINFORESPONSE']['NAME']['DATA']); return $result; } return $result; } /** * @param $id * @return Ressource */ public function getRessourceOptionsById($id) { $account = new Ressource(); $account->setId($id); $result = $this->getClient()->account->getRessourceOptions($account); if(!$result->getLastError()) { $body = $result->getResponseBody(); return $account->fill($body['GETACCOUNTRESPONSE']['ACCOUNT']); } 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; } }