Sam nie wiem czy podchodzi do pod ACL ale ogólnie nie czuje potrzeby wydzielania warstwy dostępu dlatego chciałbym w prosty sposób weryfikować czy zalogowany użytkownik może zobaczyć np. dany wpis w bazie.
Przypuszczając, że w sesji mam ID zalogowanego, a wpis w bazie ma kolumnę z właścicielem (twórcą).
Aby utrudnić sprawę przyjmuje, że dostęp do wpisu ma też np. administrator.
No i teraz pytanie jak to kontrolować? Kontroler?
Praktycznie za każdym razem mam jakiś inny pomysł.
Od strony modelu:
Przykładowo gdy tworzę metodę "getWpis" dodaje dodatkowy parametr na ID z wartością domyślną NULL.
Gdy wartość ta nie jest NULL dodaje do zapytania WHERE z weryfikacją autora.
W przypadku gdy metoda jest użyta np. w panelu admina parametru nie przesyłam albo wysyłam NULL.
Sposób jest w miarę ok choć zawsze mam obawy, że jakiś użytkownik wywoła metodę z parametrem NULL - przykładowo gdzieś zapomnę weryfikować czy użytkownik jest zalogowany tym samym brak ID zalogowanego.
Robienie dodatkowej metody weryfikującej czy dany user ma dostęp do zasobu wydaje mi się czasochłonne.
Nie zależy mi na wyświetlaniu wyjątku iż nie ma dostępu do danego wpisu tylko po prostu brak elementu (powyższy sposób spełnia te założenie).
Jakieś porady? (korzystam z CI ale ten problem w sumie wraca dosyć często, nawet z strukturalnych aplikacjach).