public static function getByUsername($username) { // тут указывается таблица, где находиться реальный пользователь $sql = "SELECT * FROM users WHERE username = :username"; $sth = $GLOBALS["DB"]->prepare($sql); $sth->execute(array(":username" => $username)); $result = $sth->fetchAll(); if (!empty($result)) { $privUser = new PrivilegedUser(); $privUser->user_id = $result[0]["user_id"]; $privUser->username = $username; $privUser->password = $result[0]["password"]; $privUser->email_addr = $result[0]["email_addr"]; $privUser->initRoles(); return $privUser; } else { return false; } }
function __construct($userId) { parent::__construct($userId); }
Скрипт содержит в Role.php Вытаскивает права самой роли Определяет установленны ли права Добавляет роль Удаляет роль Добавляет роли для определенного пользователя Удаляет роли пользователей Скрипт содержит в PrivelegedUser.php Вытаскаивает роли по пользователю Объеденяет определенные роли с их правами Проверяет есть ли у пользователя указанные привелегии Проверяет есть ли у пользователя указанные роли Добавляет права Удаляет права */ if (isset($_SESSION["loggedin"])) { $u = PrivilegedUser::getByUsername($_SESSION["loggedin"]); } else { die('you are not logged in'); } $perms = "thisPermissions"; if ($u->hasPrivilege($perms)) { echo "You are logged with this permission " . $perms; } else { echo "Forbiden with this permission access denied!"; }