![]() |
![]() ![]() |
![]() |
-afjl- |
![]()
Post
#1
|
Goście ![]() |
Posiadam prostą klasę ACL, uruchamiam ją w kontrolerze, w nim też sprawdzam dostępność zasobu na podstawie ustalonych w niech reguł itd.
Jednak jak zarządzać regułami np. gdybym chciał edytować je z poziomu jakiegoś panelu? reguły mam zapisywać dla każdego kontrolera w pliku/bazie? Czy jest na to jakiś wzorzec bądź coś co konkretnie określa takie działanie? Zakładając że z poziomu panelu admina, chciałbym zmienić dostęp moderatorowi co jakiejś sekcji, to przecież nie będę edytował pliku kontrolera... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli to ma być w formie takiego CMS bądź podobnej i masz do tego panel to najlepiej umieść reguły w bazie danych. Zrób odpowiednią tabelkę na przykład:
id | rola | zasób I potem przy każdym requeście ładuj ją i ustawiaj w ACL odpowiedni reguły wg tego co w bazie. Nie powinno być z tym problemu. W samym panelu możesz wówczas posługując się Reflection oraz listowaniem kontrolerów w katalogu zrobić fajny interfejsik do edycji i dodawania dostępów danym zasobom (o ile dobrze zrozumiałem w Twoim kontekście to dane akcje kontrolerów) wybranym rolom. EDIT: oczywiście tą tabelkę a raczej jej rekordy cache'owałbym gdzieś (może to być jakiś plik w formie tabeli PHP itp.) aby niepotrzebnie nie odpytywać o to zawsze bazy. Ten post edytował Sephirus 18.02.2013, 11:34:39 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 15:44 |