API des ACL (Access Control List)

De OviWiki
Révision de 27 septembre 2007 à 15:46 par Paul (discussion | contributions) (bab_isAccessValid($table_name, $id_object);)

Aller à : navigation, rechercher

Pour afficher un formulaire de droits ACL il faut inclure un fichier php :

include_once $GLOBALS['babInstallPath']."admin/acl.php";

Par contre pour tester les droits d'accès il n'est pas nécessaire d'inclure le fichier


Fonction pour enregistrer les droits

$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

  1. permet de désactiver la liste des groupes
  2. fonctionnalité dépréciée (sans effet)
  3. permet de désactiver le groupe "Utilisateurs d'Ovidentia"
  4. permet de désactiver le groupe "Utilisateurs enregistrés"
  5. permet de désactiver le groupe "Utilisateurs anonymes"
  6. 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.


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