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