Cześć
Chciałem napisać z pozoru banalny system sprawdzania uprawnień i... utknąłem...
Ma to działać tak że mam 4 poziomy uprawnień do 4- najwyższy do 1- najniższy, podczas wywołania danej funkcji podaję wymagany poziom uprawnień self::uprawnienia(x); gdzie x to dany poziom, uprawnienie użytkownika przechowuję w sesji. To co mam działa na 2 razy a mianowicie nie zgadzają mi się komunikaty które ma otrzymać użytkownik przy próbie wykonania akcji do której nie ma dostępu. Proszę o jakąś podpowiedź jak to ugryźć, poniżej mój kod funkcji sprawdzającej dostęp usera.
public static function checkUserOnline()
{
if(!self::isLogged())
{
$_SESSION['message'] = "<center><div class='alert alert-danger' role='alert'>Nie masz uprawnień do korzystania z tej części serwisu.</br><strong>Proszę się najpierw zalogować!</strong></div></center>";
self::redirect("../../logowanie-pracownik");
die();
}
}
public function uprawnienia($wymagania)
{
self::checkUserOnline();
$rola = $_SESSION['uprawnienia'];
switch ($rola) {
case 1:
$arr = [1];
$msg = "<center><div class='alert alert-danger' role='alert'>Jako stażysta masz wyłączoną większą część uprawnień. Możesz jedynie przeglądać wizyty bez prawa dodawania oraz edycji.</br><strong>Tą akcję może wykonać jedynie Administrator systemu lub pracownik salonu.</strong></div></center>";
break;
case 2:
$arr = [1, 2];
$msg = "<center><div class='alert alert-danger' role='alert'>Nie masz uprawnień Pracownika salonu do wykonania tej akcji.</br><strong>Tą akcję może wykonać jedynie Administrator systemu, Pracownik salonu lub Dział księgowości.</strong></div></center>";
break;
case 3:
$arr = [1, 2, 3];
$msg = "<center><div class='alert alert-danger' role='alert'>Nie masz uprawnień do wykonania tej akcji.</br><strong>Tą akcję może wykonać jedynie Administrator systemu lub Pracownik salonu.</strong></div></center>";
break;
case 4:
$arr = [1, 2, 3, 4];
$msg = "<center><div class='alert alert-danger' role='alert'>Nie masz uprawnień Administracyjnych do wykonania tej akcji.</div></center>";
break;
case 5:
$arr = [1, 2, 3, 4, 5];
$msg = "<center><div class='alert alert-danger' role='alert'>Brak uprawnień.</div></center>";
break;
default:
$arr = [];
$msg = "<center><div class='alert alert-danger' role='alert'>Brak uprawnień</div></center>";
break;
}
if (! in_array($wymagania, $arr)) {
$_SESSION['uprawnienia_alert'] = $msg;
self::redirect("../../logowanie-pracownik");
}