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

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

View File

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

View File

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

View File

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

View File

@ -23,7 +23,7 @@
/* [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();
// Si une erreur est retournee, on retourne une erreur

View File

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

View File

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