Hello Moonshield,

En fait, tu as deux modes  qui permettent de gérer les autorisations
par action.

le mode "crud", que tu évoques, où tu vas pouvoir définir tes droits
selon les quatre grandes classes d'actions : create, read, update,
delete

Effectivemement, par défaut, tout ce qui n'est pas
create,read,update,delete (et quelques synonymes comme view) n'est pas
géré.

Mais il y a une méthode dans la composant Auth qui te permet de faire
ce rattachement à la main, elle s'appelle mapActions. Elle remplit le
tableau Controller::actionMap.
(tout ça de mémoire... désolé si je me trompe  un peu).

Concrétement, tu vas pouvoir rattacher une action au choix à
create,read,update ou delete. Je n'ai pas d'exemple sous la main, mais
moi ce que fais, c'est que j'utilise cette méthode dans mon
beforeFilter.

$this->Auth->mapActions(array('monaction' => 'update'));

C'est un peu limité comme granularité, mais ça peut suffire dans
certains cas. Dans d'autres cas (imaginons un workflow : un mec crée
un contenu, un autre le modifie, un troisième le valide sans avoir le
droit de le modifier ou de le supprimer, un quatrième le consulte
seulement...), ce ne sera pas assez.

Le deuxième mode implique effectivement de définir tes droits action
par action. Concrétement, il faut créer tes actions comme des ACO sous-
noeuds des ACO contrôleurs... ça devient tout de suite fastidieux
(NB : en fouillant un peu tu trouveras des composants qui t'aident à
gérer tout ça) mais tu as une granularité très fine.

Je serai d'accord pour dire que cela reste sous-documenté... Même les
tests unitaires du framework en disent peu sur le sujet.

Guillaume
--
blog cakePHP et cie : cherryonthe.popnews.com


On 25 sep, 14:20, moonshield <[EMAIL PROTECTED]> wrote:
> Bonjour tout le monde,
> Après  avoir  lu la doc officielle je crois comprendre qu'on peut
> definir les droit d'acces à n'importe quelle action de  n'importe quel
> controlleur, mais après quelques tutos je m'apercois que cela n'est
> possible  qu'avec des actions bien precises(create,read,update,delete)
> donc si j'ai une action "monaction" je ne pourrais pas lui  définir des
> permission.
>
> j'aimerais avoir plus de  precisions à ce sujet merci :)
--~--~---------~--~----~------------~-------~--~----~

Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier  : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à