Temat: Różne poziomy uprawnień - jak w ASP.NET 4.0
Marek Urbanowicz:
szczegółowych pytań czy odpowiedzi bardziej?
pytasz o coś, co ci pozwoli uzupełnić obraz sytuacji, albo mówisz jakbyś chciał i czekasz, co inni na to powiedzą...
Ja wolę pytać :)
założenia na dzień dzisiejszy wygladają tak:
- kilku użytkowników z rangą global-admin którzy mogą edytować i zarzadzać wszystkim co jest w systemie
- kilku group-admin'ów dla każdej grupy(grup będzie sporo i będą je zakładać użytkownicy). taki admin może przyjmować prośby o członkostwo w jego grupie(tak po prostu ma być choć może brzmi głupio ale sens jest zweryfikowany, bez obaw), zarządzać wszelkimi treściami należącymi do jego grupy
- junior admini w grupach którzy mają okrojone uprawnienia group-admina.
- zwykli user'y którzy mogą korzystać z tego co należy do ich grupy/grup.
Zacznę od końca, bo tu akurat prościej coś dopowiedzieć. Można prosto zdefiniować role użytkowników. Tu powinno być nawet bardzo prosto, Role provider ma metody pozwalające na dodanie roli, którą potem przechowuje.
Np. global-admin, group-admin, junior-admin. Dla user'a można wywołać metodę sprawdzającą typu IsInRole... Nie zrobisz z tego systemu, gdzie można nadać uprawnienia na każdą kartotekę z osobna, tak, by każdy użytkownik mógł mieć własny zestaw uprawnień (a przynajmniej nie zrobisz tego bez nadawania wielu nadmiarowych ról), natomiast do twoich potrzeb wydaje się akurat.
Z zakładaniem użytkowników może być więcej komplikacji, zwłaszcza jeśli chcesz mieć mechanizm kontrolowania zakładania tych kont. To zapewne wymagać będzie napisania własnego membership providera.
Z drugiej jednak strony z pewnością są metod na obejście problemów. Na przykład mógłbyś pozwolić każdemu użytkownikowi na zakładanie konta. Do tego rozbudować formularz zakładania konta, by użytkownik mógł na tym formularzu zażądać dostępu do interesujących go grup. Konto by się zakładało bez uprawnień, a potem stosowny admin przeglądałby żądania dostępu...
a co do szablonów, fajnie by było gdyby jakiś zalążek był a rzeczywiście trzeba by było to po prostu rozbudowywać.
widziałem gdzieś na stronie MS opis ACL na .NET 4.0 ale jeszcze się w to nie wgłębiałem. czy membership i acl o którym mówię to nie są bliźniacze projekty?
ha! nie znam acl :D