/** * Creates user * * @param array $array Array of parameters * @throws ModelException */ public function create(array $array) { $user = new User(); $this->convertDates($array, ['birth_date']); $user->populate($array); $existingUser = $this->dao->getUserByLogin($user->login); if (!is_null($existingUser)) { throw new ModelException('This login already exists'); } $passwordManager = new PasswordManager(); $salt = $passwordManager->getRandomSalt(); $password = $passwordManager->getHash($array['password'], $salt); $user->password = $password; $user->salt = $salt; $this->dao->save($user); }
/** * Gets user by login * * @param string $login Login * @return User|null User entity or null * @throws \db\DatabaseException */ public function getUserByLogin($login) { $array = $this->db->getRow('select * from ' . DB_TABLE_USERS_VIEW . ' where login = ?', [$login]); if (!is_null($array)) { $entity = new User(); $entity->populate($array); return $entity; } return null; }