Correction du repo 'admin' pour prendre en compte l'appartenance à un entrepot (implémentation manuelle)

This commit is contained in:
xdrm-brackets 2016-07-14 09:25:09 +02:00
parent 6a5234917c
commit 6690a6e887
3 changed files with 167 additions and 12 deletions

View File

@ -105,17 +105,13 @@
/* [3] Si authentification double /* [3] Si authentification double
=========================================================*/ =========================================================*/
if( self::auth() >= 2 ){ if( self::auth() >= 2 ){
$checkBranch = new Repo('admin/getByToken', [ $_SESSION['AUTH'][1] ]); $checkBranch = new Repo('admin/getByToken', [ $_SESSION['WAREHOUSE']['id'], $_SESSION['AUTH'][1] ]);
/* (1) Si le token n'existe pas, on retourne une erreur */ /* (1) Si le token n'existe pas, on retourne une erreur */
if( $checkBranch->answer() == false ) if( $checkBranch->answer() == false )
return false; return false;
/* (2) Si pas administrateur de l'entrepot, on retourne une erreur */ /* (2) On met à jour les informations de l'administrateur */
if( $checkBranch->answer()[0]['id_warehouse'] != $_SESSION['WAREHOUSE']['id'] )
return false;
/* (3) On met à jour les informations de l'administrateur */
$_SESSION['ADMIN'] = [ $_SESSION['ADMIN'] = [
'id' => (int) $checkBranch->answer()[0]['id_admin'], 'id' => (int) $checkBranch->answer()[0]['id_admin'],
'username' => $checkBranch->answer()[0]['username'], 'username' => $checkBranch->answer()[0]['username'],

View File

@ -33,7 +33,7 @@
$nameFetched = $getName->answer(); $nameFetched = $getName->answer();
// Si aucun résultat, on retourne une erreur // Si aucun résultat, on retourne le status FALSE
if( count($nameFetched) == 0 ) if( count($nameFetched) == 0 )
return [ 'status' => false ]; return [ 'status' => false ];
@ -42,7 +42,7 @@
=========================================================*/ =========================================================*/
$hash_password = sessionManager::secure_hash($password); $hash_password = sessionManager::secure_hash($password);
// Si mot de passe faux, on retourne une erreur // Si mot de passe faux, on retourne le status FALSE
if( $nameFetched[0]['password'] != $hash_password ) if( $nameFetched[0]['password'] != $hash_password )
return [ 'status' => false ]; return [ 'status' => false ];
@ -81,11 +81,14 @@
/* [1] On recherche un entrepot avec ce nom /* [1] On recherche un entrepot avec ce nom
=========================================================*/ =========================================================*/
$getUsername = new Repo('admin/getByUsername', [$username]); $getUsername = new Repo('admin/getByUsername', [
$_SESSION['WAREHOUSE']['id'],
$username
]);
$usernameFetched = $getUsername->answer(); $usernameFetched = $getUsername->answer();
// Si aucun résultat, on retourne une erreur // Si aucun résultat, on retourne le status FALSE
if( count($usernameFetched) == 0 ) if( count($usernameFetched) == 0 )
return [ 'status' => false ]; return [ 'status' => false ];
@ -94,7 +97,7 @@
=========================================================*/ =========================================================*/
$hash_password = sessionManager::secure_hash($password); $hash_password = sessionManager::secure_hash($password);
// Si mot de passe faux, on retourne une erreur // Si mot de passe faux, on retourne le status FALSE
if( $usernameFetched[0]['password'] != $hash_password ) if( $usernameFetched[0]['password'] != $hash_password )
return [ 'status' => false ]; return [ 'status' => false ];

View File

@ -191,6 +191,162 @@
/* RETOURNE UN ADMINISTRATEUR PARTICULIER
*
* @id_warehouse<int> UID de l'entrepot
* @id_admin<String> Token de l'administrateur en question
*
* @return admin<Array> Retourne le premier résultat
* FALSE si erreur
*
*/
public static function getById($id_warehouse, $id_admin){
/* [1] On redige/execute la requete
=========================================================*/
$get_admin = Database::getPDO()->prepare("SELECT *
FROM admin
WHERE id_warehouse = :id_warehouse
AND id_admin = :id_admin");
$get_admin->execute([
':id_warehouse' => $id_warehouse,
':id_admin' => $id_admin
]);
$fetched = $get_admin->fetch();
/* [2] On vérifie qu'on a trouvé qqch
=========================================================*/
if( $fetched === false )
return false;
// On retourne le résultat
return Database::delNumeric( $fetched, true );
}
/* RETOURNE UN ADMINISTRATEUR PARTICULIER
*
* @id_warehouse<int> UID de l'entrepot
* @username<String> Identifiant de l'administrateur en question
*
* @return admin<Array> Retourne le premier résultat
* FALSE si erreur
*
*/
public static function getByUsername($id_warehouse, $username){
/* [1] On redige/execute la requete
=========================================================*/
$get_admin = Database::getPDO()->prepare("SELECT *
FROM admin
WHERE id_warehouse = :id_warehouse
AND username = :username");
$get_admin->execute([
':id_warehouse' => $id_warehouse,
':username' => $username
]);
$fetched = $get_admin->fetch();
/* [2] On vérifie qu'on a trouvé qqch
=========================================================*/
if( $fetched === false )
return false;
// On retourne le résultat
return Database::delNumeric( $fetched, true );
}
/* RETOURNE UN ADMINISTRATEUR PARTICULIER
*
* @id_warehouse<int> UID de l'entrepot
* @mail<String> Adresse mail de l'administrateur en question
*
* @return admin<Array> Retourne le premier résultat
* FALSE si erreur
*
*/
public static function getByMail($id_warehouse, $mail){
/* [1] On redige/execute la requete
=========================================================*/
$get_admin = Database::getPDO()->prepare("SELECT *
FROM admin
WHERE id_warehouse = :id_warehouse
AND mail = :mail");
$get_admin->execute([
':id_warehouse' => $id_warehouse,
':mail' => $mail
]);
$fetched = $get_admin->fetch();
/* [2] On vérifie qu'on a trouvé qqch
=========================================================*/
if( $fetched === false )
return false;
// On retourne le résultat
return Database::delNumeric( $fetched, true );
}
/* RETOURNE UN ADMINISTRATEUR PARTICULIER
*
* @id_warehouse<int> UID de l'entrepot
* @token<String> Token de l'administrateur en question
*
* @return admin<Array> Retourne le premier résultat
* FALSE si erreur
*
*/
public static function getByToken($id_warehouse, $token){
/* [1] On redige/execute la requete
=========================================================*/
$get_admin = Database::getPDO()->prepare("SELECT *
FROM admin
WHERE id_warehouse = :id_warehouse
AND token = :token");
$get_admin->execute([
':id_warehouse' => $id_warehouse,
':token' => $token
]);
$fetched = $get_admin->fetch();
/* [2] On vérifie qu'on a trouvé qqch
=========================================================*/
if( $fetched === false )
return false;
// On retourne le résultat
return Database::delNumeric( $fetched, true );
}