![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
dokładam do pisanej aplikacji zarządzanie użytkownikami (Zizaco/Entrust) i zrobiłem wszystko według instrukcji na githubie. Dodaje role, uprawnienia, przypisuje użytkownikom role tylko problem jest z zastosowaniem tego w panelu do blokowania dostępu. I tutaj mam kilka pytań bo dodaję kontrolę na poziomie routingu według instrukcji:
(Tak znalazłem na jednym blogu odnośnie tego dodatku) i nic nie blokuje Uzytkownik admin ma rolę superadmin a drugi nie mając żadnej roli i tak ma dostęp do wszystkiego. Próbowałem też w kontrolerze sprawdzać rolę aktualnie zalogowanego ale też wszyscy mają dostęp. Coś chyba źlę robię i zastanawiam sięgdzielepiej zrobić kontrolę na poziomie routingu czy w kontrolerze wogóle jak to poprawnie użyć? Ten post edytował mariio81 21.09.2015, 11:29:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja stosowałem Middleware dla admina:
Jest to jedno z wielu rozwiązań. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Myślałem też o Middleware żeby ogólnie sprawdzać dostęp. Ogólnie w tym co robię ma być z panelu admina dodawanie użytkowników, nowe role, uprawnienia, przypisywanie roli użytkownikom i jeszcze może pojawić się nowy moduł i trzeba będzie niektórym użytkownikom ograniczyć dostęp do niego. Trochę rozbudowane ale wszystko ma być konfigurowalne z panelu więc tutaj przypisania na sztywno odpadają. Nie bardzo rozumiem z tego nadawanie uprawnień np:
w przykładzie tworzę uprawnienie 'edit-user' a jak to się ma do konkretnego kontrolera? Dla przykładu gdy mam link '/admin/ustawienia' to w jaki sposób wyglada tutaj powiązanie zasobów z uprawnieniami? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi o permissions to ustalasz na poziomie metod. Role możesz ustawiać dowolnie, tam gdzie potrzebujesz np. w kostruktorze
Dowolność jest twoim przyjacielem |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzieki będę teraz poprawki robił.
NIe wiem czy dobrze rozumiem czyli robiąc kontrolę roli mogę dodać taki kod:
a w metodzie do ustalania uprawnień :
czy nadal to źle rozumiem. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
No tak powinno być, bezmyślnie przepisałem z dokumentacji.
Dodałem w metodzie:
ładnie blokuje dla drugiego użytkownika. Wystarczy powstawiać do metod oczywiście zmieniając uprawnienia dla każdej z nich i to wystarczy bez korzystania z: ? Mam rozumieć albo to albo to drugie w zalezności jaki jest zakres dostępu czy cały kontroler czy poszczególne metody. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zależy na jakim poziomie chcesz mieć uprawnienia.
Możesz dać ogólny dostęp hasRole('admin'), a możesz mieć też np. JuniorAdmin który can('show-users') Wszystko zależy od potrzeby |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak myslałem tylko to całe zarządzanie uprawnieniami ma być jako opcjonalny plugin doinstalowywany do aplikacji i podczas działania aplikacji będą tworzone nowe role, bedą pojawiały sie inne dodatki i niewiadomo kto na jakim poziomie będzie uprawnienia i w takim przypadku wydaje mi się bezpieczniejszym rozwiązaniem can('show-users').
Ogólnie ma to działać tak: Aplikacja w podstawowej wersji będzie miała tylko profil użytkownika i ustawienia strony. Plugin z uprawnieniami bedzie doinstalowywany. W takim przypadku podstawowa wersja bedzie miała dołaczony dodatek Entrust, skonfigurowany, dodane modele. Sam dodatek to bedzie oddzielna klasa do obsługi uprawnień wykorzystujaca Entrust. Instalacja bedzie polegała na wgraniu tabel do zarządzania uprawnieniami dodania do tabeli plugins nazwy dodatku i aktywowanie go. Dodatkowo uprawnienia do podstawowych elementów byłyby w specjalnym pliku i podczas instalacji uzupełniona by została tabela permissions o te elementy. Byłaby także specjalna funkcja która by sprawdzała czy plugin jest aktywny jeśli tak to następuje kontrola a jeśli nie wszystko jest po staremu. W takim przypadku trochę ciężko by było ustawić automatyczna kontrolę na podstawie roli albo uprawnień. Ogólnie nie wiem czy pomysł jaki tu przedstawiłem jest poprawny czy wogóle to się w ten sposób robi. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Uprawnienia raczej powinny być podstawowym elementem.
Co do pluginów każdy będzie musiał mieć już zdefiniowane role które powinny być dodawane do systemu. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Z założenia ma to być system Cms w którym Uprawnienia są opcją do doinstalowania.
Co do pluginów to nie same uprawnienia ale też role. A wychodząc całkowicie poza temat do tworzenia pluginów dobre byłoby przez Package Development czy to raczej nadaje się do tworzenia paczek typu entrust? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
PD jak najbardziej się do tego nadaje.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cytat PD jak najbardziej się do tego nadaje. Właśnie czytałem o tym na twoim blogu. A wracając jeszcze do sposobu instalacji pluginu to paczkę entrust instalować tak jak pisałem czyli w podstawowej wersji aplikacji z całą konfiguracją i tabele w bazie utworzyć nawet gdy plugin nie będzie zainstalowany czy tabele tworzyć w trakcie instalacji pluginu czy może jeszcze paczkę entrust instalować i konfigurować dopiero przy instalacji pluginu? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak pisałem, entrust wpakowałbym jako element stały w aplikacji.
Ale jeśli już chcesz to instalować to przy instalacji twórz wszystko, a przy wywalaniu wywal |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. Mam nadzieje że już nie będę miał większych problemów.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 06:51 |