GroupManagement - Nuked-Klan/CMS_Nuked-Klan GitHub Wiki
Voici une petite description de l'utilisation des groupes pour les développeurs
// Renvoi true si user a accès à la page admin passée en paramètre
// Sinon renvoi false
function nkAccessAdmin($module) {
if(array_key_exists('accessAdmin', $GLOBALS['user'])){
$arrayUserAccessAdmin = explode('|', $GLOBALS['user']['accessAdmin']);
}
else{
$arrayUserAccessAdmin = array();
}
if(in_array($module, $arrayUserAccessAdmin) || in_array('ALL', $arrayUserAccessAdmin)){
return true;
}
return false;
}
// Renvoi true si user a accès au module passé en paramètre
// Sinon renvoi false
function nkAccessModule($module) {
if(array_key_exists('accessMods', $GLOBALS['user'])){
$arrayUserAccessMods = explode('|', $GLOBALS['user']['accessMods']);
}
else{
$arrayUserAccessMods = array();
}
if(in_array($module, $arrayUserAccessMods) || in_array('ALL', $arrayUserAccessMods)){
return true;
}
return false;
}
// Renvoi true si user à au moins un accès admin
// Sinon renvoi false
function nkHasAdmin(){
if(array_key_exists('accessMods', $GLOBALS['user'])){
$arrayUserAccessMods = explode('|', $GLOBALS['user']['accessMods']);
}
else{
$arrayUserAccessMods = array();
}
if(in_array('Admin', $arrayUserAccessMods) || in_array('ALL', $arrayUserAccessMods)){
return true;
}
return false;
}
// Renvoi true si user est un membre ou un admin
// Sinon renvoi false
function nkHasMember(){
if(array_key_exists('userType', $GLOBALS['user']) && is_array($GLOBALS['user']['userType'])){
$userType = explode('|', $GLOBALS['user']['userType']);
if(in_array('2', $userType)){
return true;
}
}
if($GLOBALS['user']['userType'] == '2'){
return true;
}
return false;
}
// Renvoi true si user est non-enregistré
// Sinon renvoi false
function nkHasVisitor(){
if(!array_key_exists('userType', $GLOBALS['user'])){
return true;
}
return false;
}
INFO : Toutes ces variables n'execute pas de requète SQL elles peuvent donc être appelées autant de fois que nécessaire.
De ce fait il est préférable d'inclure l'appel à la function directement dans les tests de conditions plutôt que de l'assigné à une variable.
Exemple :
$hasAdminAccess = nkAccessAdmin(Module);
if($hasAdminAccess === true){
// code à executer
}
devient
if(nkAccessAdmin('module')){
// code à executer
}