Gestion des permissions - Niveau simple
Le paquet LiveUser_Admin vous permet de gérer les droits accordés directement à un utilisateur. Ceci correspond au niveau simple de gestion des permissions. Il fournit une série de méthodes pour interagir avec la table «liveuser_userrights».
L'exemple 1 fourni avec ce paquet PEAR devrait vous aider à commencer rapidement.
Quelques méthodes sont disponibles pour la gestion des permissions:
- grantUserRight: pour ajouter une permission à la liste des permissions
- updateUserRight: pour modifier une permission dans la liste des permissions
- revokeUserRight: pour enlever une permission de la liste des permissions
Nous commencerons par ajouter une permission, puis nous la modifierons. Nous pouvons alors créer une liste de toutes les permissions dans la table avant d'en enlever une.
Voici l'exemple complet:
Télécharger «LUA_test_userright.php»
Ajouter une permission (grantUserRight)
function grantUserRight($data)
Paramètre(s)
Cette méthode nécessite 1 paramètre:
- un vecteur avec une paire clé/valeur pour chaque champ de «liveuser_userrights»
Valeur retounée
Cette méthode retourne:
- «false» en cas d'erreur
- le nouvel identifiant de la permission en cas de succès
Exemple
Pour ajouter une permission:
...
$data = array(
'perm_user_id' => $users[0]['perm_user_id'],
'right_id' => 5,
'right_level' => 3,
);
$granted = $LUA->perm->grantUserRight($data);
...
Ceci donne le résultat suivant:

Mettre à jour une permission (updateUserRight)
function updateUserRight($data, $filter)
Paramètre(s)
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, toutes les permissions seront modifiées.
Valeur retournée
Cette méthode retourne:
- «false» en cas d'erreur
- «true» autrement
Exemple
...
$new_right_level = 2;
$right_id = 5;
$handle = 'test user';
$filter = array('handle' => $handle);
$users = ('auth', $filter);
$data = array('right_level' => $new_right_level);
$filter = array('perm_user_id' => $users[0]['perm_user_id'],
'right_id' => $right_id);
$updatedUserRight = $LUA->perm->updateUserRight($data, $filter);
...
Ceci donne le résultat suivant:

Supprimer une permission (revokeUserRight)
function revokeUserRight($filter)
Cette méthode supprime une permission accordée à un utilisateur.
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_userrights»
Attention: Si aucun paramètre n'est fourni, toutes les permissions seront enlevées.
Valeur retournée
Cette méthode retourne:
- «false» en cas d'erreur
- «true» autrement
Exemple
...
$right_id = 5;
$handle = 'test user';
$filter = array('handle' => $handle);
$users = $LUA->getUsers('auth', $filter);
$filter = array(
'perm_user_id' => $users[0]['perm_user_id'],
'right_id' => $right_id
);
$revoked = $LUA->perm->revokeUserRight($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
...
$granted = $LUA->perm->grantUserRight($data);
if ($granted == false)
{
echo 'Add_userright: error on line: '.__LINE__;
print_r($LUA->getErrors());
}
else
{
echo 'User Right added';
}
...



