API des ACL (Access Control List) : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
(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>
  
Par contre pour tester les droits d'accès il n'est pas nécessaire d'inclure le fichier
+
=== L'object macl (multiple access control list) ===
 
+
 
+
== Fonction pour enregistrer les droits ==
+
  
 
<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


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

  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.


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