Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class AbstractSQLBase {
- const DRIVER = 'mysql';
- protected $pdo;
- public function __construct() {
- $dsn = self::DRIVER.':host='.Config::SQL_HOST.';port='.Config::SQL_PORT.';dbname='.Config::SQL_DATABASE_NAME;
- try {
- $this->pdo = new PDO($dsn, Config::SQL_USER, Config::SQL_PASSWORD);
- $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- } catch (PDOException $e) {
- print "Erreur SQL : " . $e->getMessage() . "<br/>";
- die();
- }
- }
- }
- class UserManager extends AbstractSQLBase {
- private function hashPassword($password) {
- return md5('sa'.$password.'lt');
- }
- public function authenticate($username, $password) {
- $query = $this->pdo->prepare("SELECT id, first_name, last_name, email, username, password, avatar_path, is_admin FROM users WHERE username=:user");
- $query->bindValue(':user',$username);
- $query->execute();
- $result = $query->fetch(PDO::FETCH_OBJ);
- if($result && $result->password == $this->hashPassword($password) ) {
- return new User($result->id, $result->first_name,$result->last_name,$result->email,$result->username,$result->avatar_path,$result->is_admin);
- } else {
- throw new UserNotFoundException('Login incorrect');
- }
- }
- private function getUserByParam($param_id,$param_value,$error) {
- $query = $this->pdo->prepare("SELECT id, first_name, last_name, email, username, password, avatar_path, is_admin FROM users WHERE ".$param_id."=:param");
- $query->bindValue(':param',$param_value);
- $query->execute();
- $result = $query->fetch(PDO::FETCH_OBJ);
- if($result) {
- return new User($result->id, $result->first_name,$result->last_name,$result->email,$result->username,$result->avatar_path,$result->is_admin);
- } else {
- throw new UserNotFoundException($error);
- }
- }
- public function getUserById($id) {
- return $this->getUserByParam("id",$id,'ID introuvable');
- }
- public function getUserByUsername($username) {
- return $this->getUserByParam("username",$username,'Username introuvable');
- }
- public function getUserByEmail($email) {
- return $this->getUserByParam("email",$email,'Email introuvable');
- }
- public function register(User $user, $password) {
- $query = $this->pdo->prepare("INSERT INTO users (first_name, last_name, email, username, password, avatar_path, is_admin) VALUES (:first_name, :last_name, :email, :username, :password, :avatar_path, 0)");
- $query->bindValue(':first_name', $user->getFirst_name());
- $query->bindValue(':last_name', $user->getLast_name());
- $query->bindValue(':email', $user->getEmail());
- $query->bindValue(':username', $user->getUsername());
- $query->bindValue(':password', $this->hashPassword($password));
- $query->bindValue(':avatar_path', $user->getAvatar_path());
- return $query->execute();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement