getRequestValue('id'); /** * load hosting */ $hosting = Hosting::where('id', $hid)->first(); /** * load api */ $api = (new KerioManager())->getApiByServer($hosting->server); $repository = new Repository($api->soap); $result = $repository->ressources->getRessourceOptionsById($this->actionElementId); if($result instanceof Response && $result->getLastError()) { throw new \Exception($result->getLastError()); } $mailBoxParams = explode('@', $result->getName()); $this->data['id'] = $result->getId(); $this->data['username'] = $mailBoxParams[0]; $this->data['domain'] = $mailBoxParams[1]; $this->data['status'] = $result->getDataResourceA(Ressource::ATTR_STATUS); $this->data['type'] = $result->getDataResourceA(Ressource::ATTR_TYPE); $this->data['display_name'] = $result->getDataResourceA(Ressource::ATTR_DISPLAY_NAME); $this->data['description'] = $result->getDataResourceA(Ressource::ATTR_DESC); $this->data['capacity'] = $result->getDataResourceA(Ressource::ATTR_CAPACITY); $this->data['notes'] = $result->getDataResourceA(Ressource::ATTR_NOTE); $this->data['contact'] = $result->getDataResourceA(Ressource::ATTR_CONT); $this->data['site'] = $result->getDataResourceA(Ressource::ATTR_SITE); $this->data['contact_mail'] = $result->getDataResourceA(Ressource::ATTR_CONT_EMAIL); $this->data['contact_phone'] = $result->getDataResourceA(Ressource::ATTR_CONT_PHONE); $this->data['street'] = $result->getDataResourceA(Ressource::ATTR_STREET); $this->data['building'] = $result->getDataResourceA(Ressource::ATTR_BUILDING); $this->data['floor'] = $result->getDataResourceA(Ressource::ATTR_FLOOR); $this->data['room'] = $result->getDataResourceA(Ressource::ATTR_ROOM); $this->data['post_code'] = $result->getDataResourceA(Ressource::ATTR_POSTAL_CODE); $this->data['town'] = $result->getDataResourceA(Ressource::ATTR_TOWN); $this->data['state'] = $result->getDataResourceA(Ressource::ATTR_STATE); $this->data['county'] = $result->getDataResourceA(Ressource::ATTR_COUNTY); $this->data['auto_accept'] = $result->getDataResourceA(Ressource::ATTR_AUTO) == 'TRUE' ? 'on' : 'off'; $this->data['auto_busy'] = $result->getDataResourceA(Ressource::ATTR_BUSY) == 'TRUE' ? 'on' : 'off'; $lang = di('lang'); $this->availableValues['status'] = [ Kerio::ACC_STATUS_ACTIVE => $lang->absoluteT('kerio','account','status','active'), Kerio::ACC_STATUS_LOCKED => $lang->absoluteT('kerio','account','status','locked'), Kerio::ACC_STATUS_MAINTENANCE => $lang->absoluteT('kerio','account','status','maintenance'), Kerio::ACC_STATUS_CLOSED => $lang->absoluteT('kerio','account','status','closed'), Kerio::ACC_STATUS_LOCKOUT => $lang->absoluteT('kerio','account','status','lockout'), Kerio::ACC_STATUS_PENDING => $lang->absoluteT('kerio','account','status','pending') ]; $this->availableValues['type'] = [ Kerio::RES_TYPE_LOCATION => $lang->absoluteT('kerio','ressource','type','location'), Kerio::RES_TYPE_EQUIPMENT => $lang->absoluteT('kerio','ressource','type','equipment') ]; } /** * @return HtmlDataJsonResponse */ public function update() { /** * hosting id */ $hid = $this->request->get('id'); $fieldToProtection = [ 'display_name', 'status', 'type', 'capacity', 'description', 'notes', 'contact', 'site', 'contact_mail', 'contact_phone', 'street', 'building', 'floor', 'room', 'post_code', 'town', 'state', 'county', 'auto_accept', 'auto_busy' ]; foreach ($this->formData as $field => &$value) { $value = in_array($field, $fieldToProtection) ? htmlentities($value) : $value; } /** * product manager allow to check product settings */ $productManager = new ProductManager(); $productManager->loadByHostingId($hid); /** * * get soap create domain service */ $service =(new KerioManager()) ->getApiByHosting($hid) ->soap ->service() ->updateRessource(); /** * * set product manager & form data to service */ $service ->setProductManager($productManager) ->setFormData($this->formData); /** * run service */ $result = $service->run(); /** * return success or error response */ if(!$result) { return (new HtmlDataJsonResponse())->setMessageAndTranslate($service->getError())->setStatusError(); } return (new HtmlDataJsonResponse())->setMessageAndTranslate('ressourceHasBeenUpdated')->setStatusSuccess(); } /** * @return HtmlDataJsonResponse */ public function updateStatus() { /** * hosting id */ $hid = $this->request->get('id'); /** * product manager allow to check product settings */ $productManager = new ProductManager(); $productManager->loadByHostingId($hid); /** * * get soap create domain service */ $service =(new KerioManager()) ->getApiByHosting($hid) ->soap ->service() ->updateRessourceStatus() ->setProductManager($productManager) ; /** * * set product manager & form data to service */ /** * run service for each id */ $service->setFormData($this->formData); $result = $service->run(); if(!$result) { return (new HtmlDataJsonResponse())->setMessageAndTranslate($service->getError())->setStatusError(); } /** * return success */ return (new HtmlDataJsonResponse())->setMessageAndTranslate('ressourceStatusHasBeenUpdated')->setStatusSuccess(); } /** * @return HtmlDataJsonResponse */ public function changePassword() { /** * hosting id */ $hid = $this->request->get('id'); /** * product manager allow to check product settings */ $productManager = new ProductManager(); $productManager->loadByHostingId($hid); /** * * get soap create domain service */ $service =(new KerioManager()) ->getApiByHosting($hid) ->soap ->service() ->updateRessourcePassword() ->setProductManager($productManager) ; /** * * set product manager & form data to service */ /** * run service for each id */ $service->setFormData($this->formData); $result = $service->run(); if(!$result) { return (new HtmlDataJsonResponse())->setMessageAndTranslate($service->getError())->setStatusError(); } return (new HtmlDataJsonResponse())->setMessageAndTranslate('passwordChangedSuccessfully')->setStatusSuccess(); } }