Loads user by an email
public loadByEmail ( string $email, $accountId = null ) : Scalr_Account_User | ||
string | The email of the user | |
Résultat | Scalr_Account_User |
protected function getUserInfoByAccountId($accountId) { if (!isset($this->accountsCache[$accountId])) { if ($accountId) { try { $acc = new \Scalr_Account(); $acc->loadById($accountId); $this->accountsCache[$accountId] = array('id' => $acc->getOwner()->id, 'email' => $acc->getOwner()->getEmail()); } catch (\Exception $e) { $this->console->error($e->getMessage()); return array('id' => 0, 'email' => ''); } } else { $user = new \Scalr_Account_User(); $user->loadByEmail('admin', 0); $this->accountsCache[$accountId] = array('id' => $user->id, 'email' => $user->getEmail()); } } return $this->accountsCache[$accountId]; }
public function xSaveAction() { $this->request->defineParams(array('id' => array('type' => 'int'), 'name' => array('type' => 'string'), 'ownerEmail' => array('type' => 'string'), 'ownerPassword' => array('type' => 'string', 'rawValue' => true), 'comments' => array('type' => 'string'), 'ccs' => array('type' => 'json'))); $account = Scalr_Account::init(); $validator = new Validator(); $id = (int) $this->getParam('id'); $name = $this->getParam('name'); $ownerEmail = $this->getParam('ownerEmail'); $ownerPassword = $this->getParam('ownerPassword'); $validator->validate($name, "name", Validator::NOEMPTY, [], "Name is required"); $validator->validate($id, "id", Validator::INTEGERNUM); if ($id) { $account->loadById($id); } else { $account->status = Scalr_Account::STATUS_ACTIVE; if ($this->getContainer()->config->get('scalr.auth_mode') == 'scalr') { $validator->validate($ownerEmail, "ownerEmail", Validator::EMAIL); $validator->validate($ownerPassword, "ownerPassword", Validator::PASSWORD, ["admin"]); } elseif ($this->getContainer()->config->get('scalr.auth_mode') == 'ldap') { $validator->validate($ownerEmail, "ownerEmail", Validator::NOEMPTY, [], "Email is required"); } } if (!$validator->isValid($this->response)) { return; } $this->db->BeginTrans(); try { $account->name = $name; $account->comments = $this->getParam('comments'); $account->save(); $account->initializeAcl(); $account->setLimits(array(Scalr_Limits::ACCOUNT_ENVIRONMENTS => $this->getParam('limitEnv'), Scalr_Limits::ACCOUNT_FARMS => $this->getParam('limitFarms'), Scalr_Limits::ACCOUNT_SERVERS => $this->getParam('limitServers'), Scalr_Limits::ACCOUNT_USERS => $this->getParam('limitUsers'))); if (!$id) { $user = $account->createUser($ownerEmail, $ownerPassword, Scalr_Account_User::TYPE_ACCOUNT_OWNER); if ($this->getContainer()->analytics->enabled) { //Default Cost Center should be assigned $cc = $this->getContainer()->analytics->ccs->get($this->getContainer()->analytics->usage->autoCostCentre()); //Assigns account with Cost Center $accountCcEntity = new AccountCostCenterEntity($account->id, $cc->ccId); $accountCcEntity->save(); } $account->createEnvironment("default"); } if ($this->getContainer()->config->get('scalr.auth_mode') == 'ldap' && $id) { if ($ownerEmail != $account->getOwner()->getEmail()) { $prev = $account->getOwner(); $prev->type = Scalr_Account_User::TYPE_TEAM_USER; $prev->save(); $user = new Scalr_Account_User(); if ($user->loadByEmail($ownerEmail, $account->id)) { $user->type = Scalr_Account_User::TYPE_ACCOUNT_OWNER; $user->save(); } else { $account->createUser($ownerEmail, $ownerPassword, Scalr_Account_User::TYPE_ACCOUNT_OWNER); } } } if ($this->getContainer()->analytics->enabled) { if (!Scalr::isHostedScalr()) { //save ccs $ccs = (array) $this->getParam('ccs'); foreach (AccountCostCenterEntity::findByAccountId($account->id) as $accountCcsEntity) { $index = array_search($accountCcsEntity->ccId, $ccs); if ($index === false) { $accountCcsEntity->delete(); } else { unset($ccs[$index]); } } foreach ($ccs as $ccId) { $accountCcsEntity = new AccountCostCenterEntity($account->id, $ccId); $accountCcsEntity->save(); } } } } catch (Exception $e) { $this->db->RollbackTrans(); throw $e; } $this->db->CommitTrans(); $this->response->data(array('accountId' => $account->id)); }
public function xSaveAction() { $this->request->defineParams(array('id' => array('type' => 'int'), 'name' => array('type' => 'string', 'validator' => array(Scalr_Validator::NOHTML => true, Scalr_Validator::REQUIRED => true)), 'comments' => array('type' => 'string'))); $account = Scalr_Account::init(); if ($this->getContainer()->config->get('scalr.auth_mode') == 'ldap') { $this->request->defineParams(array('ownerEmail' => array('type' => 'string', 'validator' => array(Scalr_Validator::REQUIRED => true)))); } if ($this->getParam('id')) { $account->loadById($this->getParam('id')); } else { $account->status = Scalr_Account::STATUS_ACTIVE; if ($this->getContainer()->config->get('scalr.auth_mode') == 'scalr') { $this->request->defineParams(array('ownerEmail' => array('type' => 'string', 'validator' => array(Scalr_Validator::REQUIRED => true, Scalr_Validator::EMAIL => true)), 'ownerPassword' => array('type ' => 'string', 'validator' => array(Scalr_Validator::MINMAX => array('min' => 6))))); } } if (!$this->request->validate()->isValid()) { $this->response->failure(); $this->response->data($this->request->getValidationErrors()); return; } $this->db->BeginTrans(); try { $account->name = $this->getParam('name'); $account->comments = $this->getParam('comments'); $account->save(); $account->initializeAcl(); $account->setLimits(array(Scalr_Limits::ACCOUNT_ENVIRONMENTS => $this->getParam('limitEnv'), Scalr_Limits::ACCOUNT_FARMS => $this->getParam('limitFarms'), Scalr_Limits::ACCOUNT_SERVERS => $this->getParam('limitServers'), Scalr_Limits::ACCOUNT_USERS => $this->getParam('limitUsers'))); if (!$this->getParam('id')) { $account->createEnvironment("default"); $account->createUser($this->getParam('ownerEmail'), $this->getParam('ownerPassword'), Scalr_Account_User::TYPE_ACCOUNT_OWNER); } if ($this->getContainer()->config->get('scalr.auth_mode') == 'ldap' && $this->getParam('id')) { if ($this->getParam('ownerEmail') != $account->getOwner()->getEmail()) { $prev = $account->getOwner(); $prev->type = Scalr_Account_User::TYPE_TEAM_USER; $prev->save(); $user = new Scalr_Account_User(); if ($user->loadByEmail($this->getParam('ownerEmail'), $account->id)) { $user->type = Scalr_Account_User::TYPE_ACCOUNT_OWNER; $user->save(); } else { $account->createUser($this->getParam('ownerEmail'), $this->getParam('ownerPassword'), Scalr_Account_User::TYPE_ACCOUNT_OWNER); } } } } catch (Exception $e) { $this->db->RollbackTrans(); throw $e; } $this->db->CommitTrans(); $this->response->data(array('accountId' => $account->id)); }