Framework

Méthode Groups::return_array_auth()

return_array_auth
check_auth — Permet de construire un tableau d'autorisations.


Description



Code :
array return_array_auth(array $array_auth1 [, array $array_auth ] [, bool $admin_auth_default])


Cette méthode de la classe groups permet de construire le tableau d'autorisation à partir des informations fournies par un formulaire (en savoir plus sur la création de ce formulaire).

Les tableaux $array_auth1, $array_auth2, $array_authn (où n est inférieur ou égal à 31) sont issus de données provenant de formulaire.
Ils proviennent d'un formulaire de type sélect à sélection multiple autorisée. La particularité de ce formulaire est qu'il renvoie directement en tableau à PHP. Elle admet donc entre 1 et 31 paramètres plus un paramètre additionnel $admin_auth_default.
Par défaut l'administrateur obtient tout les droits indépendamment des paramètres qui sont passés. Pour changer ce comportement le dernier argument $admin_auth_default de la fonction doit être un booléen valant false, la constante ADMIN_NOAUTH_DEFAULT est utilisé dans ce cas là (voir l'exemple 2).

L'ordre dans lequel sont passés les paramètres est important puisque le ième paramètre correspondra au ième bit dans les séries d'autorisation.
Pour enregistrer le tableau de sortie contenant les autorisations dans la base de données il est conseillé de le sérialiser (voir ici).


Exemple 1



Code :
<?php 
//Capture des autorisations envoyées par formulaire
$auth_read = isset($_POST['groups_auth1']) ? $_POST['groups_auth1'] : array();
$auth_write = isset($_POST['groups_auth2']) ? $_POST['groups_auth2'] : array();

//Génération du tableau des droits.
$array_auth_all $groups->return_array_auth($auth_read$auth_write);
?>


Suite à l'exemple ci-dessus vous pourrez utiliser $array_auth_all pour vérifier des autorisations ou bien l'enregistrer dans la base de données.


Exemple 2, Administrateur non sélectionné par défaut



Code :
<?php 
//Capture des autorisations envoyées par formulaire
$auth_read = isset($_POST['groups_auth1']) ? $_POST['groups_auth1'] : array();
$auth_write = isset($_POST['groups_auth2']) ? $_POST['groups_auth2'] : array();

//Génération du tableau des droits.
$array_auth_all $groups->return_array_auth($auth_read$auth_writeADMIN_NOAUTH_DEFAULT);
?>


Si dans le formulaire l'administrateur n'a pas été sélectionné il n'aura pas les droits, contrairement à l'exemple ci-dessus.


Voir aussi



Stockage des droits dans la base de données
Cette page a été vue 2014 fois