You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.6 KiB
91 lines
2.6 KiB
<?php
|
|
|
|
namespace API\script\Gateway;
|
|
|
|
use API\script\Config\Connection;
|
|
use PDO;
|
|
|
|
/**
|
|
* Permet d'accéder, d'écrire ou de modifier les données contenues dans la table Admin afin de gérer l'espace administrateur.
|
|
*/
|
|
class GatewayAdmin
|
|
{
|
|
/**
|
|
* @var Connection
|
|
*/
|
|
private Connection $connection;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->connection = connect();
|
|
}
|
|
|
|
/**
|
|
* Permet d'ajouter un administrateur dans la base de données.
|
|
*
|
|
* @param string $login Login du nouvel adimin
|
|
* @param string $hash Mot de passe au format hash du nouvel admin
|
|
*
|
|
* @return void
|
|
*/
|
|
public function addAdmin(string $login, string $hash): void
|
|
{
|
|
$query = "INSERT INTO Admin(login, hash) VALUES(:login, :hash)";
|
|
$this->connection->executeQuery($query, array(
|
|
':login' => array($login, PDO::PARAM_STR),
|
|
':hash' => array($hash, PDO::PARAM_STR)
|
|
));
|
|
}
|
|
|
|
/**
|
|
* Permet de récupérer le mot de passe en format hash du login passé en argument,
|
|
* afin de vérifier si la connection de l'utilisateur.
|
|
*
|
|
* @param string $login Login du coup duquel on veut récupérer le hash associé
|
|
*
|
|
* @return array
|
|
*/
|
|
public function getPassword(string $login): array
|
|
{
|
|
$query = 'SELECT Hash FROM Admin WHERE Login = :login';
|
|
|
|
$this->connection->executeQuery($query, array(
|
|
':login' => array($login, PDO::PARAM_STR)
|
|
));
|
|
|
|
return $this->connection->getResults();
|
|
}
|
|
|
|
/**
|
|
* Permet de changer le mot de passe de l'administrateur dont le login
|
|
* et le nouveau mot de passe au format hash est passé en argument.
|
|
*
|
|
* @param string $login Login dont on change le mot de passe
|
|
* @param string $hash Nouveau mot de passe au format hash
|
|
*
|
|
* @return void
|
|
*/
|
|
public function changePassword(string $login, string $hash): void
|
|
{
|
|
$query = "UPDATE Admin SET hash = :hash WHERE login = :login";
|
|
$this->connection->executeQuery($query, array(
|
|
':login' => array($login, PDO::PARAM_STR),
|
|
':hash' => array($hash, PDO::PARAM_STR)
|
|
));
|
|
}
|
|
|
|
/**
|
|
* Permet de supprimer un administrateur de la base de donnée par un login passé en paramètre.
|
|
*
|
|
* @param string $login Login du compte qui sera supprimé
|
|
*
|
|
* @return void
|
|
*/
|
|
public function deleteAdmin(string $login): void
|
|
{
|
|
$query = "DELETE FROM Admin WHERE login = :login";
|
|
$this->connection->executeQuery($query, array(
|
|
':login' => array($login, PDO::PARAM_STR)
|
|
));
|
|
}
|
|
} |