239 lines
5.9 KiB
PHP
239 lines
5.9 KiB
PHP
<?php
|
|
|
|
|
|
/**
|
|
* @brief Ligne de la table user représentant un utilisateur
|
|
*/
|
|
class user {
|
|
|
|
///Login du joueur
|
|
private $login;
|
|
|
|
///Hash du mot de passe du joueur
|
|
private $pwd;
|
|
|
|
///Nom du joueur
|
|
private $nom;
|
|
|
|
///Prenom du joueur
|
|
private $prenom;
|
|
|
|
///Date d'inscription sur le site du joueur
|
|
private $date_inscription;
|
|
|
|
///Parties jouées par le joueur
|
|
private $games;
|
|
|
|
///Email du joueur
|
|
private $email;
|
|
|
|
|
|
/**
|
|
* @brief Constructeur de joueur
|
|
* @arg $login login du joueur
|
|
* @arg $password mot de passe du joueur
|
|
* @arg $nom nom du joueur
|
|
* @arg $prenom prenom du joueur
|
|
* @arg $date_inscription date d'inscription du joueur
|
|
* @arg Remarque si le mot de passe est NULL, les données sont chargé automatique grâce au login du joueur
|
|
*/
|
|
public function __construct($login, $password = null, $nom = null, $prenom = null, $mail = null) {
|
|
if ($password == NULL) {
|
|
//On demande de charger les données grâce à l'ID
|
|
//On include le DAO
|
|
include_once './dao/user_dao.php';
|
|
|
|
//On instancie un nouvel objet DAO
|
|
$dao = new user_dao();
|
|
|
|
//On récupère les données
|
|
$data = $dao->select($login);
|
|
|
|
|
|
//On parse les résultats
|
|
$this->login = $data["login"];
|
|
$this->pwd = $data["pwd"];
|
|
$this->nom = $data["nom"];
|
|
$this->prenom = $data["prenom"];
|
|
$this->email = $data["email"];
|
|
$this->date_inscription = $data["dateinscription"];
|
|
} else {
|
|
//Sinon, on à toutes les infos
|
|
//Chargement des données
|
|
$this->login = $login;
|
|
$this->pwd = $password;
|
|
$this->nom = $nom;
|
|
$this->prenom = $prenom;
|
|
$this->email = $mail;
|
|
$this->date_inscription = time();
|
|
}
|
|
|
|
//On ne charge pas les parties pour éviter la surcharge mémoire
|
|
$this->games = NULL;
|
|
}
|
|
|
|
/**
|
|
* @brief Retourne le login du joueur
|
|
* @return string
|
|
*/
|
|
public function getLogin() {
|
|
return $this->login;
|
|
}
|
|
|
|
/**
|
|
* @brief Retourne le hash du mot de passe du joueur
|
|
*/
|
|
public function getPassword() {
|
|
return $this->pwd;
|
|
}
|
|
|
|
/**
|
|
* @brief Définie le mot de passe du joueur
|
|
* @note la converion en hash MD5 est automatiquement réalisée
|
|
*/
|
|
public function setPassword($password) {
|
|
$this->pwd = md5($password);
|
|
}
|
|
|
|
/**
|
|
* @brief Obtient le nom du joueur
|
|
* @return string
|
|
*/
|
|
public function getNom() {
|
|
return $this->nom;
|
|
}
|
|
|
|
/**
|
|
* @brief Définie le nom du joueur
|
|
* @return $nom nom du joueur
|
|
*/
|
|
public function setNom($nom) {
|
|
$this->nom = $nom;
|
|
}
|
|
|
|
/**
|
|
* @brief Obtient le prénom du joueur
|
|
* @return string
|
|
*/
|
|
public function getPrenom() {
|
|
return $this->prenom;
|
|
}
|
|
|
|
/**
|
|
* @brief Définie le prénom du joueur
|
|
* @arg $prenom prénom du joueur
|
|
*/
|
|
public function setPrenom($prenom) {
|
|
$this->prenom = $prenom;
|
|
}
|
|
|
|
/**
|
|
* @brief Obtient les parties jouées par le joueur
|
|
* @return tableau de game ou FALSE si rien
|
|
*/
|
|
public function getGames() {
|
|
//Si il n'y a pas de données enregistrées, on fait une requête
|
|
if ($this->games == NULL) {
|
|
//On fait les inclusions nécessaire
|
|
include_once "./dao/game_dao.php";
|
|
include_once "./metier/game.php";
|
|
|
|
//On instancie un nouvel objet
|
|
$dao = new game_dao();
|
|
|
|
//On récupère les logiciel
|
|
$result = $dao->selectByLogin($this->login);
|
|
|
|
//Mise en place d'une variable pour sauvegarder les résultats
|
|
$tmp = array();
|
|
$i = 0;
|
|
|
|
//On parse les résultats
|
|
foreach ($result as $row) {
|
|
$tmp[$i] = new game($row["id"], $row["user_login"], $row["length"], NULL);
|
|
}
|
|
|
|
//On sauvegarde les résultats dans l'attribut spécifique
|
|
$this->games = $tmp;
|
|
}
|
|
|
|
//On renvoie les résultats
|
|
return $this->games;
|
|
}
|
|
|
|
/**
|
|
* @brief Obtient l'email de l'utilisateur
|
|
* @return string
|
|
*/
|
|
public function getMail() {
|
|
return $this->email;
|
|
}
|
|
|
|
/**
|
|
* @brief Définie l'email de l'utilisateur
|
|
* @arg $mail email de l'utilisateur
|
|
* @note la vérification se fera en javascript
|
|
*/
|
|
public function setMail($mail) {
|
|
$this->email = $mail;
|
|
}
|
|
|
|
/**
|
|
* @brief Obtient si l'objet est NULL
|
|
* @return bool
|
|
*/
|
|
public function isNull() {
|
|
if ($this->login != NULL) {
|
|
return FALSE;
|
|
} else {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* @brief Sauvegarde un utilisateur dans la base de données
|
|
*/
|
|
public static function saveUser($user) {
|
|
//On include le DAO pour savegarder l'utilisateur
|
|
include_once './dao/user_dao.php';
|
|
|
|
//On instancie un nouvel objet
|
|
$dao = new user_dao();
|
|
|
|
//On demande la sauvegarde
|
|
if (!$dao->update($user)) {
|
|
$dao->insert($user);
|
|
}
|
|
}
|
|
|
|
public static function saveUserNoPassword($user) {
|
|
//On include le DAO pour savegarder l'utilisateur
|
|
include_once './dao/user_dao.php';
|
|
|
|
//On instancie un nouvel objet
|
|
$dao = new user_dao();
|
|
|
|
//On demande la sauvegarde
|
|
$dao->updateNoPassword($user);
|
|
}
|
|
|
|
public static function exist($login) {
|
|
//On include le DAO pour savegarder l'utilisateur
|
|
include_once './dao/user_dao.php';
|
|
|
|
//On instancie un nouvel objet
|
|
$dao = new user_dao();
|
|
|
|
$tmp = $dao->select($login);
|
|
|
|
if ($tmp == NULL) {
|
|
return FALSE;
|
|
} else {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
?>
|