$user->getId(), self::KEY_SALT => $user->getSalt() )); } public static function login($username, $password) { $user = LuticateUsersDataAccess::getByUsernameOrEmail($username); if (is_null($user)) self::badPassword(); if (!self::verifyPassword($password, $user->getPassword())) self::badPassword(); $user = LuticateUsersLoginDbo::fromUserDbo($user); $user->setToken(self::getToken($user)); return $user; } /** * @param $user LuticateUsersDbo * @return bool */ public static function logout($user) { $user->setSalt(self::getSalt()); LuticateUsersDataAccess::editById($user->getId(), $user); return true; } public static function add($username, $email, $password) { $hash = self::hashPassword($password); if (filter_var($username, FILTER_VALIDATE_EMAIL)) self::badInput("Username can not be an email"); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) self::badInput("Invalid email address"); $user = LuticateUsersDataAccess::getByUsernameOrEmail($username); if (!is_null($user)) self::badInput("Username already exists"); $user = LuticateUsersDataAccess::getByUsernameOrEmail($email); if (!is_null($user)) self::badInput("Email already used"); $user = new LuticateUsersDbo(); $user->setEmail($email); $user->setPassword($hash); $user->setUsername($username); $user->setSalt(self::getSalt()); return LuticateUsersDataAccess::addId($user); } }