Jak autoryzować dostęp do funkcjonalności strony?

Jak autoryzować dostęp do funkcjonalności strony?
LI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 518
0

Jak przeprowadzić autoryzację użytkownika?

Utworzyłam tabelę. Mam w niej: login, hasło, uprawnienia(jako int).

Chciałam po pomyślnym porównaniu haseł i loginów pobierać z bazy uprawnienia i w zależności od liczby, przenieść na inną stronę.

Przykładowo jeśli ktoś ma uprawnienia ==1 to dostaje stronę admin.php gdzie może dodawać userów, usuwać etc. Jeśli ma 2 to jest magazynierem i może dodawać i odejmować ilość produktów w magazynie. Z kolei 3 to kucharka i ona może tylko przeglądać ile czego jest, zmienianie nie leży w jej kompetencji.

Czyli admin admin.php, magazynier magazynier.php, kucharka kucharka.php.

Każda strona jest bliźniacza co do wyglądu oferuję inną funkcjonalność. Na stronie kucharka.php nie ma guziczków aby dodać usunąć produkt i nie ma textboxów aby je wpisać. Na stronie magazynier.php są, z kolei nie ma informacji jakie dania i w jakiej ilości moze zrobić aw kucharka.php jest taka możliwość.

Wydaje mi się jednak że moje rozwiązanie, nie jest najlepsze: część treści zdublowanej. Jakie inne wady ma to rozwiązanie?

Może po prostu po udanym logowaniu Tworzyć stronę przez php? Jeśli 1 do taką jeśli 2 do taką etc. Za każdym razem sprawdzac uprawnienia i generować strony za pomocą php?

Jakie jest rozwiązanie które się aktualnie używa? Jakie jest najlepsze?

MS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Miej jeden panel administracyjny i zależnie od uprawnień ukrywaj lub wyświetlaj poszczególną funkcjonalność.

dkacperczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Radom, Polska
  • Postów: 116
0

Ja bym wykorzystał system szablonów i w zależności od tego jakie użytkownik ma uprawnienia wyświetlał odpowiedni dla niego szablon :)

bordeux
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Chorzów
  • Postów: 1130
0

Zrób uprawnienia na podstawie ról. Tworzysz 3 tabele
roles

  • rol_id
  • rol_name

permissions

  • perm_id
  • perm_name

roles_permissions

  • rol_id (fk)
  • perm_id (fk)

No i tabela users musi mieć kolumne rol_id.

Po zalogowaniu pobierasz:

Kopiuj
SELECT
	rol_name
FROM
	roles_permissions
JOIN
	permissions
USING(perm_id)
WHERE
	rol_id = :rolID

Następnie w PHP budujesz tablicę z rol_name, i sprawdzasz czy ma uprawnienie do danej części

Kopiuj
<?php
if($this->permissions->has("Magazyny::show"){
echo "Pokazujesz magazynyn";
}
?>

Taki system uprawnienia nie będą cie blokować, gdy dojdzie np. kolejny podmiot, np. sprzątaczka.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.