API des ACL (Access Control List) : Différence entre versions
(→bab_isAccessValid($table_name, $id_object);) |
|||
| Ligne 1 : | Ligne 1 : | ||
| + | |||
| + | |||
| + | == Fonction pour enregistrer les droits == | ||
| + | |||
Pour afficher un formulaire de droits ACL il faut inclure un fichier php : | Pour afficher un formulaire de droits ACL il faut inclure un fichier php : | ||
| Ligne 5 : | Ligne 9 : | ||
</pre> | </pre> | ||
| − | + | === L'object macl (multiple access control list) === | |
| − | + | ||
| − | + | ||
| − | == | + | |
<pre> | <pre> | ||
| Ligne 54 : | Ligne 55 : | ||
la méthode "set_hidden_field($sName, $sValue)" permet de définir des champs cachés supplémentaires. | la méthode "set_hidden_field($sName, $sValue)" permet de définir des champs cachés supplémentaires. | ||
| + | |||
| + | |||
| + | === Enregistrer des droits par API === | ||
| + | |||
| + | aclDuplicateRights($srcTable, $srcIdObject, $trgTable, $trgIdObject) | ||
| + | |||
| + | cette fonction permet de dupliquer un droit entre 2 objects | ||
| + | |||
| + | |||
| + | aclSetGroups_all($table, $id_object) | ||
| + | |||
| + | Pour donner accès à tout les utilisateurs d'ovidentia | ||
| + | |||
| + | aclSetGroups_registered($table, $id_object) | ||
| + | |||
| + | Pour donner accès aux utilisateurs enregistrés | ||
| + | |||
| + | aclSetGroups_unregistered($table, $id_object) | ||
| + | |||
| + | Pour donner accès aux utilisateurs annonymes | ||
Version du 27 septembre 2007 à 15:52
Sommaire
Fonction pour enregistrer les droits
Pour afficher un formulaire de droits ACL il faut inclure un fichier php :
include_once $GLOBALS['babInstallPath']."admin/acl.php";
L'object macl (multiple access control list)
$macl = new macl('tg_value', 'idx_value', $id_object, 'returnvar');
$macl->addtable( 'bab_table_name',bab_translate("Who can manage this environement?"));
$macl->filter(0,0,1,1,1);
$macl->babecho();
l'object "macl" permet la création d'un fomulaire acl pour un seul object.
la méthode addtable() permet d'ajouter une ou plusieurs tables de droits, la méthode doit être appelée une ou plusieurs fois, le premier paramètre est le nom de la table, le deuxième paramètre est le libellé qui sera affiché sur le formulaire.
voici un exemple de structure pour la table de droits :
CREATE TABLE `bdic_env_groups` ( `id` int(11) unsigned NOT NULL auto_increment, `id_object` int(11) unsigned NOT NULL default '0', `id_group` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `id_object` (`id_object`), KEY `id_group` (`id_group`) );
la méthode "filter" permet de désactiver certaines possibilités du formulaire de droit
voici la liste des paramètres possible, tout les paramètres sont optionnels, il faut mettre 1 pour désactiver l'élément souhaité ou 0 pour ne rien faire
- permet de désactiver la liste des groupes
- fonctionnalité dépréciée (sans effet)
- permet de désactiver le groupe "Utilisateurs d'Ovidentia"
- permet de désactiver le groupe "Utilisateurs enregistrés"
- permet de désactiver le groupe "Utilisateurs anonymes"
- permet de désactiver un ou plusieurs groupes spécifiés par leur ID (le paramètre est un tableau)
la méthode "babecho()" permet d'afficher le formulaire.
la méthode "getHtml()" permet de récupérer le html du formulaire.
la méthode "set_hidden_field($sName, $sValue)" permet de définir des champs cachés supplémentaires.
Enregistrer des droits par API
aclDuplicateRights($srcTable, $srcIdObject, $trgTable, $trgIdObject)
cette fonction permet de dupliquer un droit entre 2 objects
aclSetGroups_all($table, $id_object)
Pour donner accès à tout les utilisateurs d'ovidentia
aclSetGroups_registered($table, $id_object)
Pour donner accès aux utilisateurs enregistrés
aclSetGroups_unregistered($table, $id_object)
Pour donner accès aux utilisateurs annonymes
Fonctions pour tester les droits
bab_isAccessValid($table_name, $id_object);
la fonction renvoie true ou false si l'utilisateur à accès à l'objet testé
bab_getUserIdObject($table_name);
la fonction renvoie la liste des objets auquel l'utilisateur à accès sur cette table de droit sous forme d'un tableau