[PHP] Sprawdzanie uprawnień użytkownika w ACP na bieżąco


(Raapid96) #1

Witam!

Piszę sobie obecnie mały CMS. Zrobiłem logowanie do ACP (użytkownicy mogą mieć różne uprawnienia). Jeśli użytkownik i hasło zgadzają się - pobiera resztę danych m.in. listę uprawnień i zapisuje to do odpowiednich zmiennych sesyjnych. Problem pojawia się, kiedy np. administrator z większymi uprawnieniami usunie obecnie zalogowanego użytkownika lub zmieni mu uprawnienia (np. na mniejsze). Wtedy w sesji tamtego usera cały czas są uprawnienia sprzed zmiany i może np. zarządzać podstronami mimo, że w bazie już nie ma tego uprawnienia. Jedynym sposobem, który przychodzi mi obecnie do głowy jest to, żeby przy każdym wywołaniu jakiejś strony w ACP sprawdzało aktualne dane użytkownika w moim przypadku będą to 2 dodatkowe zapytania do bazy). Czy zna ktoś może jakąś bardziej optymalną metodę?


(ra-v) #2

Przenieść uprawnienia w danych sesyjnych do tabeli w bazie danych (np. ADMIN_SESSION).

W przypadku gdy jego uprawnienia się zmieniają, to zmieniają się też dane w tabeli ADMIN_SESSION.

Uprawnienia można odczytywać po ID użytkownika (1 zapytanie).


(Raapid96) #3

Problem już rozwiązałem skracając pobieranie informacji o użytkowniku do jednego zapytania i po prostu to zapytanie jest wykonywane przy każdym przeładowaniu strony.