Witam serdecznie.
Projektuję aplikację, która będzie zbierała informacje na temat obserwacji zwierząt i chciałbym was prosić o opinię, czy moje założenia odnośnie "projektu" aplikacji są słuszne, gdyż mam wątpliwośći czy przy takich założeniach będę mógł wdrożyć uprawnienia kontroli dostępu do obserwacji. Załóżmy, że w zwiazku z tym mam takie modele:
- Obserwacje(id(PK), data_obserwacji, id_gatunku_zwierzecia(FK), opis, id_wprowadzajacego)
relacje: nazwaZwierzęcia=> BelongsTo:Gatunki, id_gatunku_zwierzecia
- Gatunki(id(PK), nazwa_zwierzecia, id_grupy(FK))
relacje: nazwaGrupyZwierzęcia=>BelongsTo:GrupyZwierzat, id_grupy
- GrupyZwierzat(id, nazwa)
Dodam tylko, że np tworząc nową obserwację jako dodatkowy parametr GET jest zdefiniowany gatunek zwierzęcia, np. obserwacje/create/ssaki i na tej podstawie wczytywany jest odpowiedni formularz, gdyż widoki dla odrębnych gatunków zwierząt są różne.
Następnie chodzi mi o to, czy przy w/w założeniach - tj. w sytuacji, gdy do tworzenia obserwacji (niezależnie od gatunku zwierzęcie, zawsze wykorzystywana jest w kontrolerze ta sama akcja, która tylko wczytuje różne widoki), jej updatu (niezależnie od gatunku zwierzęcia, zawsze wykorzystywana jest w kontrolerze ta sama akcja, która tylko wczytuje różne widoki) będę mógł bez problemu zdefiniować uprawnienia dostępu do obserwacji na podstawie tego, czy dany użytkownik ma uprawnienia do przeglądania obserwacji z danego gatunku. Bez problemu mogę wdrożyć taką funkcjonalność w sytuacji, gdy każdy gatunek zwierzęcia to inny kontroler (wtedy np. definiuję Operację Ssaki.View, Ryby.View itp.) ale to byłoby powielanie kodu a tego chciałbym uniknąć.
Czy jest możliwie tak zdefiniowanie operacji/zadań/ról oraz reguł w checkAccess, aby zaimplementować w/w wymagania? Jeśli tak, to prosiłbym o jakąś wskazówkę.
Z góry dziękuję i pozdrawiam
Tomek