Skip to content
This repository has been archived by the owner on Oct 7, 2023. It is now read-only.

GroupManagement

Stive1987 edited this page Jun 14, 2013 · 4 revisions

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
}