Gestion des droits
Le paquet LiveUser_Admin vous permet de gérer le droits utilisés au sein de LiveUser. Il fournit une série de méthodes pour interagir avec la table «liveuser_rights».
L'exemple 1 fourni avec ce paquet PEAR devrait vous aider à commencer rapidement.
Quelques méthodes sont disponibles pour la gestion des droits:
- addRight: pour ajouter un droit à la liste des droits
- updateRight: pour modifier un droit dans la liste des droits
- removeRight: pour enlever un droit de la liste des droits
- getRights: pour consulter la liste des droits
Nous commencerons par ajouter un droit, puis nous le modifierons. Nous pouvons alors créer une liste de tous les droits dans la table avant d'en enlever un.
Voici l'exemple complet:
Télécharger «LUA_test_right.php»
Ajouter un droit (addRight)
function addRight($data)
Paramètre(s)
Cette méthode nécessite 1 paramètre:
- un vecteur avec une paire clé/valeur pour chaque champ de «liveuser_rights»
La manière la plus simple est de fournir le nom du droit seulement. Dans ce cas, la méthode allouera automatiquement un identifiant pour le droit (en utilisant la table «liveuser_rights_seq»).
Autrement, vous pouvez aussi fournir le nom du droit et son identifiant.
Valeur retounée
Cette méthode retourne:
- «false» en cas d'erreur
- le nouvel identifiant du droit en cas de succès
Exemple
Pour ajouter un nom d'un droit:
...
$area_id = 5;
$right_name = 'A right';
$has_implied = 0;
$data = array('area_id' => $area_id,
'right_define_name' => $right_name,
'has_implied' => $has_implied);
$rightId = $LUA->perm->addRight($data);
...
Pour ajouter un nom et un identifiant de droit
...
$area_id = 5;
$right_id = 5;
$right_name = 'A right';
$has_implied = 0;
$data = array('area_id' => $area_id,
'right_id' => $right_id,
'right_define_name' => $right_name,
'has_implied' => $has_implied);
$rightId = $LUA->perm->addRight($data);
...
Ceci donne le résultat suivant:

Mettre à jour un droit (updateRight)
function updateRight($data, $filter)
Cette méthode nécessite 2 paramètres:
- un vecteur contenant une paire clé/valeur contenant les valeurs mises à jour
- un vecteur contenant une paire clé/valeur pour sélectionner l'enregistrement à mettre à jour
Attention: Si aucun paramètre n'est fourni, tous les droits seront modifiées.
Valeur retournée
Cette méthode retourne:
- «false» en cas d'erreur
- «true» autrement
Exemple
...
$new_right_name = 'Another right';
$right_id = 5;
$data = array('right_define_name' => $new_right_name);
$filter = array('right_id' => $right_id);
$updateRight = $LUA->perm->updateRight($data, $filter);
...
Ceci donne le résultat suivant:

Enumérer les droits (getRights)
function getRights($params = array())
Paramètre(s)
Cette méthode nécessite 1 paramètre, c-à-d un vecteur contenant quelques paramètres pour la sélection:
- «filter»: un vecteur contenant une paire clé/valeur pour appliquer le critère de sélection
Valeur retournée
Cette méthode retourne:
- «false» en cas d'erreur
- «true» autrement
Exemple
Obtenir la liste de tous les droits:
...
$rights = $LUA->perm->getRights();
...
Obtenir une liste filtrée des droits:
...
$right_id = 5;
$filter = array('filters' => array('right_id' => $right_id));
$rights = $LUA->perm->getRights($filter);
...
Ceci donne le résultat suivant:

Supprimer un droit (removeRight)
function removeRight($filter)
Cette méthode supprimera un droit et toutes les permissions associées et qui ont été accordées aux utilisateurs et aux groupes. Les droits implicites y associés seront supprimés également.
Paramètre(s)
Cette méthode nécessite 1 paramètre:
- un vecteur avec une paire clé/valeur pour sélectionner l'enregistrement à enlever de «liveuser_rights»
Attention: Si aucun paramètre n'est fourni, tous droits seront enlevées.
Valeur retournée
Cette méthode retourne:
- «false» en cas d'erreur
- «true» autrement
Exemple
...
$right_id = 5;
$filter = array('right_id' => $right_id);
$removeRight = $LUA->perm->removeRight($filter);
...
Ceci donne le résultat suivant:

Obtenir de l'information sur la dernière erreur (getErrors)
function getErrors()
Dans le cas où une fonction retourne «false», celà signifie qu'il y a un problème. Vous pouvez obtenir l'information relative à l'erreur en appelant cette méthode.
Paramètre(s)
Cette méthode ne nécessite aucun paramètre.
Valeur retournée
Cette méthode retourne:
- l'information concernant l'erreur
Exemple
...
$data = array('area_id' => $area_id,
'right_id' => $right_id,
'right_define_name' => $right_name,
'has_implied' => $has_implied);
$rightId = $LUA->perm->addRight($data);
if ($rightId == false)
{
echo 'Add_right: error on line: '.__LINE__;
print_r($LUA->getErrors());
}
else
{
echo 'Right with id ' . $rightId . ' created';
}
...



