Question

Dans mon modèle de données, j'ai un champ qui devrait être admin-modifiable uniquement. Les utilisateurs normaux peuvent modifier les enregistrements dans le modèle et voir ce domaine spécifique, mais ils ne devraient pas être en mesure de le modifier. Y at-il une approche simple, / propre pour le faire? Je suppose qu'il est nécessaire de créer une action de contrôleur de admin_editer supplémentaire, mais ce qui est la meilleure façon de « verrouillage » un champ de données dans le contrôleur?

Était-ce utile?

La solution

Il est pas nécessaire de créer une nouvelle action du contrôleur, mais vous pouvez décider ainsi. Notez que vous pouvez toujours utiliser le même point de vue pour l'aide $this->render("edit") voir: http: //book.cakephp. org / view / 428 / rendre

Je pense que vous devez:

  • utiliser la même action du contrôleur, si c'est confondant pas pour les utilisateurs et les administrateurs
  • afficher un champ de saisie que si l'utilisateur est admin, et la sortie du texte pour les autres utilisateurs
  • vérification d'autorisation dans le contrôleur

Autres conseils

En fonction de votre configuration, cela pourrait facilement être traitée comme une méthode de validation dans le modèle. Ecrire une fonction personnalisée dans le modèle pour vérifier si l'utilisateur est autorisé.

Vous pouvez aussi le faire dans le modèle avec beforeSave (). Si le champ est là et ils ne sont pas autorisés, retirez-le.

vous pouvez simly vérifier le rôle admin dans la vue modifier

if (hasRoleAdmin) {
 echo $this->Form->input(...);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top