Bonjour, je suis en train de créer un site grâce à CakePHP, et divers problèmes se posent face à moi.
Premièrement, je suis en train de faire un panel d'admin assez léger, il ne me sert pour l'instant qu'à créer/modifier/supprimer des utilisateurs.
Néanmoins un problème se pose déjà : Pour supprimer (ou modifier), j'ai donc une action qui se trouve dans mon UsersController, qui fonctionne, mais ce que j'aimerais c'est que, quand je clique sur le bouton 'Supprimer' de mon panel, une liste s'affiche avec les différents utilisateurs.
Mais, je ne sais pas ou mettre cette liste. En effet j'ai essayer de faire un delete.ctp dans ma vue Users sans résultat évidemment.
Donc dois-je créer une nouvelle classe juste pour la suppression ?

Ma deuxième question est assez simple, je pense, mais je n'ai pas trouvé la solution dans la doc (ou j'ai mal cherché) :
Pour le formulaire de modification d'un utilisateur, j'affiche donc les différents champs de l'user, mais au niveau du champs password, je n'ai trouvé que deux solutions : soit

unset($this->request->data'User']'password']);

pour que le mot de passe ne soit simplement pas affiché et doit donc être retapé, soit je n'en met pas et le mot de passe qui s'affiche est celui déja crypté dans la base de données. Or j'aimerais que ce soit le mot de passe non crypté qui soit déjà pré-remplis dans le champs. est-ce possible ?

Merci d'avance de vos réponses et de votre aide.

3 réponses


Bonjour,

1) Que souhaites tu faire ? une fonctionnalité permettant de supprimer un ou plusieurs utilisateurs à la fois ?

2) Si tu regardes dans ta base, tu verras que ton mot de passe est crypté et hashé. Ceci pour prévenir la récupération des mots de passe par un hacker. Naturellement, tu ne peux pas faire le cryptage inverse pour récupérer le mot de passe en clair, sinon il n'y aurait pas d'intérêt. Si tu veux pouvoir proposer ton mot de passe en clair, il va te falloir l'enregistrer dans un autre champ. Mais si tu fais ça, je viens te frapper avec une batte à clous rouillée, car c'est une des pires choses à faire en terme de sécurité.

Helongh
Auteur

Bonjour, et merci de ta réponse,

1) En fait, j'ai réfléchi à plusieurs possibilités et deux m'ont parues intéressantes :

  • Sur la page d'accueil d'admin j'affiche les boutons Créer/Modifier/Supprimer, ou chaque va m’amener à une page contenant un tableau avec les utilisateurs, et la page avec l'action delete() contiendrait en plus dans ce tableau une colonne avec des checkbox pour permettre une suppression multiple.

  • Soit sur la page d'accueil d'admin je ne met qu'un bouton "Liste" ou j'affiche les utilisateurs avec à coté les boutons Modifier/Supprimer et celui d'ajout au dessus.

De plus, en parcourant la doc, j'ai vu qu'on faire un préfixage de routes, donc je m'atèle à ça vu qu'à la base j'avais créer toute une classe Admins juste pour ça. Donc en faisant le préfixage dans users, j'atterri dans admin/users directement, mais est-il possible d'aller directement à une page admin/ avec une liste d'options d'admin sans créer un controller ? (Edit : Après recherche j'ai cru voir qu'il faut créer une fonction admin_index dans PagesController)

2) Oui en effet je me doutais de la réponse mais j'avais besoin d'une confirmation, au cas ou je serais passé à coté de quelque chose, donc je me passerais volontiers des coups de batte !

Helongh
Auteur

Je profite de ce sujet pour ne pas en recréer un autre.

Je dois créer, dans mon panel d'admin, un formulaire permettant d'ajouter des sous-catégories sous forme de dossier qui seront donc dans une catégorie ( sous forme de dossier aussi ) dans le répertoire webroot/files.
Pour cela j'aimerais dans mon formulaire de sous-catégories créer une liste avec les catégories à choisir. J'ai lié mes table catégories et sous-catégories avec un belongsTo mais je n'ai aucune idée de comment afficher cette liste en récupérant les infos de la table. Je n'arrive pas a envoyé les informations du find('all') à ma vue.

Merci d'avance de vos réponses.