Prieigos teisės PHP

Dažniausiai svetainėje yra ne vienas vartotojų tipas, o keli ir visi jie turi skirtingas teises. Pavyzdžiui, jūs galite turėti paprastus vartotojus ir administratorius. Administratoriai turės daugiau teisių, nei įprasti vartotojai.

Kaip tai įgyvendinama: sukursime vartotojų lentelėje dar vieną lauką, pavadinsime jį status ir kiekvienam vartotojui saugosime jo statusą: tebūnie administratoriams žodis 'admin', o paprastiems vartotojams - žodis 'user'.

Dabar, kai vartotojas autorizuojasi, į $_SESSION['status'] įrašysime vartotojo statusą iš duomenų bazės:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
    $_SESSION['status'] = $user['status']; // įrašome statusą
  }
?>

Tarkime, kad dabar mūsų svetainėje yra koks nors pushlapis, prie kurio turi prieigą tik administratoriai. Padarykime taip, kad tik administratoriai matytų šio pushlapio turinį:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // rodysime pushlapio turinį tik administratoriams
  }
?>