Salut,
Désolé pour mon ignorance et SVP soyez indulgent car c'est pour moi la première fois que j'utilise cakePHP (et ce forum ;)).
Si je ne me fais pas comprendre par la suite, j'essayerai de reformuler ma demande.
En ce moment je suis en train de créer un petit site et je bloque sur comment gérer un accès membre (membre, rédacteurs, ..., admin), ainsi que la création dynamique de menu suivant les accès membre (avoir un semblant d'interface via mon administration).
Actuellement je gère l'accès membre comme ce qui a été expliqué dans le tuto http://www.grafikart.fr/tutoriels/cakephp/membres-user-auth-260 (merci bien pour ce tuto), mais j'ai du mal à créer mes différents rôles.
Je pense qu'il serait préférable que je passe par les ACL mais je ne vois pas comment le gérer de manière dynamique (via une interface).
Pour gérer mes menus, j'ai essayé plusieurs façons mais je ne trouve pas la bonne (je suis passé par les tree, ...). J'essaye bien d'intégrer le plugin Menu Builder, mais je ne vois pas comment je peut le rendre dynamique (au mieux vie une table en base).
Sur mon site, on peut créer des pages (système créé via les tutos : Développer un site avec Cakephp) qui devront par la suite apparaître dans le menu en tant que sous-menu (et peut-être sous-sous-menu).
De plus je gère un mini-blog, des albums photos + vidéos, ... (des contrôleurs à part) qui devront apparaître aussi dans le menu.
Par exemple, le lien permettant d'afficher l'index des album devra pointer sur l'action index de mon contrôleur Album.
Pour gérer mes albums (par exemple), j'ai une fonction admin_index (et plein d'autres préfixées par admin). Je pense que ce dernier point sera utile pour le reste de ma question.
Il y aura un menu commun pour tout le monde (celui du visiteur), mais j'aimerai qu'ils aient un menu différent en fonction du rôle qu'ils ont lorsque qu'ils sont connectés.
L'administrateur aura accès aux actions du rédacteurs en plus de celles purement admin.
Que me conseillez vous (méthodologie, plugin, ...) ?
Avez-vous des références ou exemples pour m'aider ?
Merci pour vos conseils.
PS : si vous avez besoin de complément ou éclaircissement, n'hésitez pas à demander.
Bon je vais laisser tomber cela. Je vais faire une autre solution.
Je crois que j'ai trouvé mon bonheur pour travailler les permissions via une page d'administration : https://github.com/FMCorz/AclManageranager.
C'est assez pratique mais dur à configurer ...
Il me reste plus qu'à avoir une interface pour configurer les menus suivant les groupes. Je pense faire une table menus qui pointera sur des données présente dans une table lien comme à la sauce Croogo : http://docs.croogo.org/
Si quelqu'un à une idée pour interfacer l'administration des menus suivant les permissions ACL j'en serai reconnaissant.
Merci
A+
Je viens de m'apercevoir d'un petit hic au niveau des mes ACL. Pour 2 de mes ACOS (fonction membre_edit et membre_index de mon controller User), même si mes aros_acos m'indique que j'ai le droit (1 dans les colonnes _create, _read, _update et _delete pour le groupe de mon utilisateur), je n'arrive pas à accéder aux méthodes ...
Si, j'autorise l'accès à la fonction admin_index du même controller user, j'ai accès à cette action ...
J'ai utilisé la méthode allow dans le before filter uniquement pour les accès sans préfix sinon j'ai la boucle lié à l'action login :
function beforeFilter(){
// Configuration de l'action de login
$this->Auth->loginAction = array(
'controller' => 'users',
'action' => 'login',
'membre' => false,
'admin' => false
);
//Configure AuthComponent
$this->Auth->authorize = array(
'Controller'
,'Actions' => array('actionPath' => 'controllers')
);
// Configuration de la redirection de logout
$this->Auth->logoutRedirect = '/';
// Existence prefix
if(isset($this->request->params'prefix'])){
// Si prefixe
// Gestion autorisation
// = admin
if($this->request->params'prefix'] == 'admin'){
//
}
// = membre
if($this->request->params'prefix'] == 'membre'){
//
}
}
// Si pas de prefix, on autorise tout
else{
$this->Auth->allow();
}
}
Le message qui est apparaît lorsque je tente d'accéder à la page est le authError du composant Auth :
public $components = array(
'Session',
'Cookie',
'Acl',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'scope' => array('User.active' => 1)
)
),
'authError' => 'Accès reservé. Veuillez vous connecter avec le login adéquat.'
)
);
Qu'ai-je fait de mal ? Que puis-je regarder pour avancer ?
Merci d'avance