Kullanıcı izin kontrolleri modelde mi yoksa kontrolörde mi yapılmalı? Ve izin kontrollerini, Kullanıcı nesnesini veya bazı UserManagement yardımcısını kim ele almalı?
Nerede olmalı?
Kontrol Ünitesinde Kontrol Etme:
class MyController {
void performSomeAction() {
if (user.hasRightPermissions()) {
model.someAction();
}
}
...
Kontrolörde kontrollerin yapılması Modellerin basit işlemlerin yapılmasına yardımcı olur, böylece tüm mantıkları Kontrolörlerde tutabiliriz.
Modelde Kontrol Etme:
class MyModel {
void someAction() {
if (user.hasRightPermissions()) {
...
}
}
...
Çekleri Model'e koyarak, Modeli zorlaştırırız, ancak kullanıcıların yanlışlıkla Denetleyici'de yapmaları gerekmeyen şeyleri yapmalarına izin vermediğimizden emin olun.
Ve kim tarafından?
Bir yere yerleştikten sonra kontrolleri kim yapmalı? Kullanıcı?
Class User {
bool hasPermissions(int permissionMask) {
...
}
...
Ama ne elde edebileceğini bilmek gerçekten kullanıcının sorumluluğunda değil, belki bir yardımcı sınıf?
Class UserManagement {
bool hasPermissions(User user, int permissionMask) {
...
}
...
Biliyorum, sadece bir soru sormak yaygın bir şey, pekala, bir soru, ama bunların birlikte güzelce cevaplanabileceğini düşünüyorum.