Gestion des authorisations 'admin' + 'warehouse' complétée

This commit is contained in:
xdrm-brackets 2016-07-04 17:44:21 +02:00
parent 4a412db81a
commit e807879d09
6 changed files with 37 additions and 15 deletions

View File

@ -144,7 +144,7 @@
"getById": { "getById": {
"description": "Retourne un utilisateur spécifique.", "description": "Retourne un utilisateur spécifique.",
"permissions": ["warehouse"], "permissions": ["warehouse", "admin"],
"parameters": { "parameters": {
"id_user": { "description": "UID de l'utilisateur.", "type": "id" } "id_user": { "description": "UID de l'utilisateur.", "type": "id" }
}, },

View File

@ -57,6 +57,20 @@
"getByName", "getByName",
"getByToken", "getByToken",
"updateToken"
],
"admin": [
"create",
"edit",
"delete",
"getAll",
"getById",
"getByUsername",
"getByMail",
"getByToken",
"updateToken" "updateToken"
] ]

View File

@ -142,7 +142,6 @@
if( !in_array($permission, $_SESSION['PERM']) ) if( !in_array($permission, $_SESSION['PERM']) )
return false; return false;
var_dump('warehouse: ok');
/* [3] Si on a toutes les permissions requises /* [3] Si on a toutes les permissions requises
=========================================================*/ =========================================================*/

View File

@ -23,7 +23,7 @@
/* [1] Creation de la machine /* [1] Creation de la machine
=========================================================*/ =========================================================*/
$create_machine = new Repo('machine/create', [$code, $name]; $create_machine = new Repo('machine/create', [$code, $name]);
$id_machine = $create_machine->answer(); $id_machine = $create_machine->answer();
// Si une erreur est retournee, on retourne une erreur // Si une erreur est retournee, on retourne une erreur

View File

@ -25,6 +25,7 @@
$check_unique = count(self::getByUsername($username)) == 0; $check_unique = count(self::getByUsername($username)) == 0;
$check_unique = $check_unique && count(self::getByMail($mail)) == 0; $check_unique = $check_unique && count(self::getByMail($mail)) == 0;
// Si un administrateur a deja cet identifiant ou mail, on renvoie une erreur // Si un administrateur a deja cet identifiant ou mail, on renvoie une erreur
if( !$check_unique ) if( !$check_unique )
return false; return false;
@ -40,12 +41,13 @@
':token' => sessionManager::secure_sha1( uniqid() ) ':token' => sessionManager::secure_sha1( uniqid() )
]); ]);
/* [3] On retourne l'id_admin ou FALSE si erreur /* [3] On retourne l'id_admin ou FALSE si erreur
=========================================================*/ =========================================================*/
$check_admin = self::getByUsername($username); $check_admin = self::getByUsername($username);
// Si n'existe pas on retourne FALSE // Si n'existe pas on retourne FALSE
if( !isset($check_admin[0]) || !is_array($check_admin[0]) ) if( count($check_admin) == 0 )
return false; return false;
// Sinon, on retourne son id // Sinon, on retourne son id
@ -116,26 +118,29 @@
public static function edit($id_admin=null, $username=null, $mail=null, $password=null){ public static function edit($id_admin=null, $username=null, $mail=null, $password=null){
/* [1] Verification de l'unicite du nom (name) (si different) /* [1] Verification de l'unicite du nom (name) (si different)
=========================================================*/ =========================================================*/
// On recupere les administrateurs ayant le meme nom (si existent) // On recupere les administrateurs ayant le meme identifant ou mail (si existent)
// pour éviter les collisions (car le nom doit être unique) // pour éviter les collisions (car l'identifiant et le mail doivent être uniques)
$getbyuname = self::getByUsername($username); $getbyuname = self::getByUsername($username);
$getbymail = self::getByMail($mail); $getbymail = self::getByMail($mail);
$check_unique = is_array($getbyuname) && $getbyuname['id_user'] == $id_user || !is_array($getbyuname); $check_unique = count($getbyuname) > 0 && $getbyuname['id_user'] == $id_user || !is_array($getbyuname);
$check_unique = $check_unique && count($getbymail) > 0 && $getbymail['id_user'] == $id_user || !is_array($getbymail);
// Si un utilisateur a deja ce code ou cet username (sauf lui), on renvoie une erreur // Si un administrateur a deja cet identifiant ou ce mail (excepté lui-même), on renvoie une erreur
if( !$check_unique ) if( !$check_unique )
return false; return false;
/* [2] Modification de l'utilisateur /* [2] Modification de l'utilisateur
=========================================================*/ =========================================================*/
$edit_admin = Database::getPDO()->prepare("UPDATE admin $edit_admin = Database::getPDO()->prepare("UPDATE admin
SET name = :name, SET username = :username,
password = :password mail = :mail,
password = :password
WHERE id_admin = :id_admin"); WHERE id_admin = :id_admin");
$edit_admin->execute([ $edit_admin->execute([
':name' => $name, ':username' => $username,
':password' => $password, ':mail' => $mail,
':password' => $password,
':id_admin' => $id_admin ':id_admin' => $id_admin
]); ]);

View File

@ -313,11 +313,15 @@
function createWarehouse(){ function createWarehouse(){
$insert = new Repo('warehouse/create', array( 'FifthWarehouse', 'MyPassword' ) ); $insert = new Repo('admin/create', [
'FirstAdmin',
'adminmail@gmail.com',
'AdminPassword'
]);
var_dump( $insert->answer() ); var_dump( $insert->answer() );
$getAll = new Repo('warehouse/getAll'); $getAll = new Repo('admin/getAll');
}createWarehouse(); }createWarehouse();