Les vérifications des autorisations des utilisateurs doivent-elles avoir lieu dans le modèle ou le contrôleur? Et qui devrait gérer les vérifications des autorisations, l'objet utilisateur ou un assistant de gestion des utilisateurs?
Où cela devrait-il arriver?
Vérification dans le contrôleur:
class MyController {
void performSomeAction() {
if (user.hasRightPermissions()) {
model.someAction();
}
}
...
Avoir les vérifications dans le contrôleur aide à rendre les modèles des actions simples, afin que nous puissions garder toute la logique pour les contrôleurs.
Vérification du modèle:
class MyModel {
void someAction() {
if (user.hasRightPermissions()) {
...
}
}
...
En mettant les vérifications dans le modèle, nous compliquons le modèle, mais nous veillons également à ne pas autoriser accidentellement les utilisateurs à faire des choses qu'ils ne sont pas censés faire dans le contrôleur.
Et par qui?
Une fois que nous nous sommes installés, qui devrait faire les vérifications? L'utilisateur?
Class User {
bool hasPermissions(int permissionMask) {
...
}
...
Mais ce n'est pas vraiment la responsabilité de l'utilisateur de savoir ce qu'il peut accéder, alors peut-être une classe d'aide?
Class UserManagement {
bool hasPermissions(User user, int permissionMask) {
...
}
...
Je sais qu'il est courant de poser juste une seule question dans, eh bien, une question, mais je pense qu'on peut y répondre bien ensemble.