![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 25 Dołączył: 22.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Stworzyłem sobie prosty system uprawnień i zastanawiam się nad organizacją kodu...
Wiem, że to mój kod, wiem, że "powinienem pisać tak jak umiem", ale prosiłbym o jakieś wskazówki bądź przykłady rozwiązań w waszych aplikacjach (IMG:style_emoticons/default/smile.gif) Ogólnie rzecz biorąc to chciałbym, aby ten kod był elastyczny i w miarę łatwy w rozwoju. Ten post edytował 404 20.01.2012, 00:00:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Całości ci nie pokaże, bo bym musiał się sporo przy tym naprodukować żeby to opisać.. Generalnie musiałbyś mieć jedną klasę która by sprawdzała uprawnienia: jeżeli niezalogowany, przekierować na stronę logowania, jeżeli po zalogowaniu nadal ma nieodpowiednie uprawnienia poinformować odpowiednim komunikatem. U mnie to jest klasa Authentication, która zarówno autoryzuje użytkownika login/logout jak i w metodach prywatnych sprawdza użytkownika, co określony czas regeneruje sesje i aktualizuje "ostatnią wizytę" użytkownika w bazie danych. Jeżeli znajdę trochę więcej czasu, to mogę spróbować wrzucić te klasy, i je opisać. Tyle że to nie są jakieś osobne klasy, które bez problemu dołączyć do jakiegoś innego systemu, bo nie miałem takiego zamiaru tworząc je. Tak też może być ciężko "skopiować" moje rozwiązanie. Najbardziej uniwersalna z tego wszystkiego jest klasa użytkownika, która z podstawowymi danymi jest tworzona jako pierwsza, zaraz za nią inicjowana jest klasa Authentication, która na podstawie wcześniej inicjowanej klasy User, sprawdza kto jakie ma uprawnienia. A całość inicjuje tak:
A klasa użytkownika, bo w sumie jest najbardziej uniwersalna wygląda tak: https://gist.github.com/1647691 u siebie mam podział na podstawowe pola, oraz pola dodatkowe, takie które można przykładowo z poziomu panelu administratora sobie stworzyć w bazie danych (IMG:style_emoticons/default/wink.gif) większość to są same setery/getery więc za bardzo nie ma co opisywać. Jedynie hasRole, coś tam bardziej skomplikowanego robi. Więc inicjując klasę User, tworzę "gościa". Na tej podstawie mogę sprawdzić poprzez isUser czy faktycznie jest użytkownikiem, a następnie sprawdzić jego uprawnienia.
Dodatkowo w przypadku kiedy nie jest użytkownikiem, zapisuje w sesji adres na który ma wrócić po zalogowaniu, a następnie przekierowuje na stronę logowania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 11:14 |