Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu] jAcl2 et permissions avec ressources sur les sujets

Posted by Rob2 on 01/09/2011 12:00

Bonjour,

Je suis en plein dans la mise en place de jAcl2. Sur mon site, les membres peuvent poster des messages et éventuellement les modifier ou les supprimer. J'ai ajouté la ligne jAcl2DbManager::addRight($id_du_groupe_PRIVE, 'module.controleur.droit', $id_de_la_ressource); pour qu'ils puissent modifier leurs messages. Si j'ai bien compris, je ne dois pas leur attribuer le sujet module.controleur.droit car ils pourraient modifier les messages des autres membres, seuls les administrateurs et modérateurs ont ce sujet.
De cette façon tout fonctionne bien, mais comment faire si, un jour, je ne veux plus que les membres puissent supprimer ou modifier les messages ? Si je supprimer tous les droits et qu'un jour j'ai envie de leur permettre à nouveau de modifier, ils n'auront plus rien...
Tant que j'y suis, comment faire en sorte que les modérateurs ne puissent pas supprimer les messages des administrateurs ? Est-ce qu'il existe une sorte de "hiérarchie des droits" avec jAcl2 ? J'ai bien regardé dans la doc mais ça ne m'a rien appris que je ne connaissais déjà.

Merci d'avance pour vos réponses.


Jelix 1.2.1.1

  [Opened] jAcl2 et permissions avec ressources sur les sujets

Reply #1 Posted by foxmask on 01/10/2011 14:42

Tout ceci est une petite gymnastique à avoir/application à faire.

pour les droits liés aux ressources :

si on sait aujourd'hui qu'on devra sans doute prévoir d'autres cas, alors autant créer les sujets dès à présent et leur associé les droits/ressources.

si par la suite on a trop peu de sujets, on les rajoutera et un petite moulinette se chargera de re-ventiler les droits aux bons sujets.

genre je créé seulement "discussion" comme sujet et droits. demain je veux discussion.create, discussion.edit discussion.edit.mine discussion.delete je les y ajouterai et ferai une moulinette pour dispatcher les anciens droits de "discussion" à "discussion.create" + "discussion.edit.mine" (par exemple).

Pour ce qui est des droits qu'on retire et veut recuperer, on se créé ce qu'on veut qui contient les "droits standard" (par defaut) qui, quand on en a besoin, peuvent être rappelés pour le cas évoqué.

Tout ceci est utilisé dans HaveFnuBB et on peut reinitialiser les droits comme bon nous semble.

pour les droits liés aux groupes :

comme il n'y a pas de notion de hierarchie, on créera un droit spécifiquement utilisables par les admin discussion.delete.all (par exemple) pour que l'utilisateur/group avec ce droit puisse supprimer tout ce qu'il veut.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] jAcl2 et permissions avec ressources sur les sujets

Reply #2 Posted by laurentj on 01/10/2011 15:50

Bonjour,

À priori, si j'ai bien compris, ceux qui ont le droits de modifier/supprimer un message, ce sont :

  • les auteurs des messages,
  • les modérateurs/administrateurs

Pour les premiers, je ne ferais pas appel à jAcl, c'est lourdingue pour la suite, comme tu as pu le comprendre. Je ferais juste une comparaison identifiant de l'auteur et identifiant de l'utilisateur (en supposant que l'identifiant de l'auteur soit stocké avec chaque message).

Et pour les seconds, là je ferais un ou deux sujets : "module.controller.moderation.modify" et "module.controller.moderation.delete", que je lierai au groupe admin et au groupe moderateur.

Donc un simple

($id_author == jAuth::getSessionUser()->login || jAcl2::check("module.controller.moderation.modify")) 

suffirait pour savoir si il peut modifier le message ou pas.

Si plus tard tu veux pouvoir interdire la modification aux auteurs, créer deux autres droits, "module.controller.author.modify", "module.controller.author.delete", que tu lies aux groupes moderateurs, admin et users. Et alors le test devient :

($id_author == jAuth::getSessionUser()->login && jAcl2::check("module.controller.author.modify")
<code>
 || 

jAcl2::check("module.controller.moderation.modify")

</code>

Tant que j'y suis, comment faire en sorte que les modérateurs ne puissent pas supprimer les messages des administrateurs ? Est-ce qu'il existe une sorte de "hiérarchie des droits" avec jAcl2 ? J'ai bien regardé dans la doc mais ça ne m'a rien appris que je ne connaissais déjà.

Non il n'y a pas de hiérarchie de droits. C'est assez complexe à développer, plutôt gourmand en ressources, et surtout ça devient complexe à gérer pour un administrateur.

  [Opened] jAcl2 et permissions avec ressources sur les sujets

Reply #3 Posted by Rob2 on 01/10/2011 17:10

Parfait, merci à vous deux, c'est bien plus clair maintenant.


Jelix 1.2.1.1

 
Page
  1. [Résolu] jAcl2 et permissions avec ressources sur les sujets