Correction des permissions (`ModuleManager` etc)
This commit is contained in:
parent
dc30fbfcca
commit
50d7babcda
|
@ -52,10 +52,10 @@
|
|||
/* [3] Gestion des droits des utilisateurs
|
||||
=========================================================*/
|
||||
/* (1) Retourne si l'utilisateur est connecte ou non */
|
||||
function connected(){ return isset($_SESSION['permission']) && $_SESSION['permission']; }
|
||||
function connected(){ return isset($_SESSION['permission']) && count($_SESSION['permission']); }
|
||||
|
||||
/* (2) Retourne si l'utilisateur a le status en question */
|
||||
function permission(){ return connected() && $_SESSION['permission']; }
|
||||
function permission($type){ return connected() && in_array($type, $_SESSION['permission']); }
|
||||
|
||||
|
||||
?>
|
||||
|
|
|
@ -400,7 +400,7 @@
|
|||
/* [3] Gestion si aucun token, avec utilisateur connecté
|
||||
=========================================================*/
|
||||
}else if( isset($_SESSION['permission']) )
|
||||
$local_permissions = $_SESSION['permission'] ? ['admin'] : [];
|
||||
$local_permissions = $_SESSION['permission'];
|
||||
|
||||
// Si ni token, ni SESSION, erreur
|
||||
else{
|
||||
|
@ -408,7 +408,6 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
/* [4] Verification des droits parmi les permissions donnees
|
||||
=========================================================*/
|
||||
/* (1) On recupere la liste des permissions possibles */
|
||||
|
@ -417,15 +416,17 @@
|
|||
/* (2) Si aucune permission n'est definie, on laisse l'acces */
|
||||
if( !$permissions == 0 ) return true;
|
||||
|
||||
/* (3) On verifie qu'il y a au moins une permission ok */
|
||||
/* (3) On verifie qu'il y a aucune permission manquante */
|
||||
foreach($permissions as $permission)
|
||||
if( in_array($permission, $local_permissions) ) return true;
|
||||
if( !in_array($permission, $local_permissions) ){
|
||||
$this->error = ManagerError::PermissionError;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/* [5] On retourne FAUX si aucun droit n'a ete trouve
|
||||
=========================================================*/
|
||||
$this->error = ManagerError::PermissionError;
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
=========================================================*/
|
||||
$_SESSION['userid'] = $user['id_user'];
|
||||
$_SESSION['username'] = $user['login'];
|
||||
$_SESSION['permission'] = true;
|
||||
$_SESSION['permission'] = ['admin'];
|
||||
|
||||
/* [4] Retour de l'id user
|
||||
=========================================================*/
|
||||
|
@ -53,6 +53,8 @@
|
|||
$_SESSION['userid'] = null;
|
||||
$_SESSION['username'] = null;
|
||||
$_SESSION['permission'] = [];
|
||||
|
||||
return ['ModuleError' => ManagerError::Success];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
|
||||
"logout": {
|
||||
"description": "Deconnexion",
|
||||
"permissions": [],
|
||||
"permissions": ["admin"],
|
||||
"parameters": {}
|
||||
},
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
use \api\core\Checker;
|
||||
use \manager\MenuManager;
|
||||
|
||||
// var_dump($_SESSION);
|
||||
|
||||
|
||||
/*******************************************/
|
||||
/* DEBUGGER */
|
||||
|
@ -26,7 +28,7 @@
|
|||
/* (1) Valeurs par defaut */
|
||||
if( !isset($_SESSION['userid']) ) $_SESSION['userid'] = null;
|
||||
if( !isset($_SESSION['username']) ) $_SESSION['username'] = null;
|
||||
if( !isset($_SESSION['permission']) ) $_SESSION['permission'] = false;
|
||||
if( !isset($_SESSION['permission']) ) $_SESSION['permission'] = [];
|
||||
|
||||
|
||||
/* (2) Gestion de la connection */
|
||||
|
@ -43,13 +45,19 @@
|
|||
$login = new ModuleRequest('user/login', [ 'login' => $_POST['login'], 'password' => $_POST['password'] ]);
|
||||
$login_ans = $login->dispatch();
|
||||
|
||||
// Si aucune erreur, on dit qu'on vient de se connecter
|
||||
// Si aucune erreur, on dit qu'on vient de se connecter
|
||||
if( $login_ans->error == ManagerError::Success )
|
||||
$_SESSION['login_status'] = 'logged';
|
||||
else // Si on n'a pas les bonnes donnees
|
||||
|
||||
// Si on n'a pas les bonnes donnees
|
||||
else
|
||||
$_SESSION['login_status'] = 'error';
|
||||
}
|
||||
|
||||
// var_dump($login_vars);
|
||||
// var_dump($_SESSION);
|
||||
// exit();
|
||||
|
||||
|
||||
/* (3) Gestion de le deconnexion */
|
||||
$logout_vars = isset($_POST['logout-sub']);
|
||||
|
@ -62,6 +70,7 @@
|
|||
// Si aucune erreur, on dit qu'on vient de se deconnecter
|
||||
if( $logout_ans->error == ManagerError::Success )
|
||||
$_SESSION['login_status'] = 'unlogged';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue