Gestion des authorisations 'admin' + 'warehouse' complétée
This commit is contained in:
parent
4a412db81a
commit
e807879d09
|
@ -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" }
|
||||||
},
|
},
|
||||||
|
|
|
@ -57,6 +57,20 @@
|
||||||
"getByName",
|
"getByName",
|
||||||
"getByToken",
|
"getByToken",
|
||||||
|
|
||||||
|
"updateToken"
|
||||||
|
],
|
||||||
|
|
||||||
|
"admin": [
|
||||||
|
"create",
|
||||||
|
"edit",
|
||||||
|
"delete",
|
||||||
|
|
||||||
|
"getAll",
|
||||||
|
"getById",
|
||||||
|
"getByUsername",
|
||||||
|
"getByMail",
|
||||||
|
"getByToken",
|
||||||
|
|
||||||
"updateToken"
|
"updateToken"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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,25 +118,28 @@
|
||||||
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,
|
||||||
|
mail = :mail,
|
||||||
password = :password
|
password = :password
|
||||||
WHERE id_admin = :id_admin");
|
WHERE id_admin = :id_admin");
|
||||||
$edit_admin->execute([
|
$edit_admin->execute([
|
||||||
':name' => $name,
|
':username' => $username,
|
||||||
|
':mail' => $mail,
|
||||||
':password' => $password,
|
':password' => $password,
|
||||||
':id_admin' => $id_admin
|
':id_admin' => $id_admin
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue