15.03.2018 01:13:48 pm
Пользователь сайта может состоять в какой то определенной группе, например, группа зарегистрированных пользователей, администраторов или просто гость. В зависимости от группы вошедшего на сайт, пользователю назначаются права доступа, допустим, зарегистрированному пользователю можно комментировать статьи, гостю это делать запрещено, а администратору можно не только комментировать, но и редактировать или удалять чужие комменты. Чтобы сценарий знал кому можно комментировать (или делать что то еще), а кому нет, необходимо выполнять проверку пользователя, в какой он группе состоит.
Для одного проекта я сделал класс под названием "user", где у меня был простой метод "is" для проверки пользователя (гость | зарегистрированный | администратор). Сейчас покажу, что у меня получилось, в общем то, там кода, как кот наплакал...
Сам код класса:
Для этой темы, я убрал все методы, оставил только метод "is", но это думаю не важно... Как видите метод "is" у меня статический, а для проверки пользователя используется id пользователя, что сохраняется в сессии. Если в сессии нет id, значит вошедший на сайт является гостем, если id в сессии есть, значит вошедший является зарегистрированным пользователем, а если есть id и он равняется единице, значит вошедший на сайт является администратором.
Метод "is" может вернуть одно из двух значений
Все варианты:
Как мне показалось, очень удобный подход. Группы можно добавлять, сколько угодно.
Возможно, будет интересно: Регистрация | Авторизация на сайте PHP и MySQLi.
Для одного проекта я сделал класс под названием "user", где у меня был простой метод "is" для проверки пользователя (гость | зарегистрированный | администратор). Сейчас покажу, что у меня получилось, в общем то, там кода, как кот наплакал...
Сам код класса:
class user
{
public static function is($user)
{
if ($user == 'guest' && empty($_SESSION['id']) | $user == 'user' && !empty($_SESSION['id']) | $user == 'admin' && !empty($_SESSION['id']) && $_SESSION['id'] == 1)
{
return true;
}
return false;
}
}
Для этой темы, я убрал все методы, оставил только метод "is", но это думаю не важно... Как видите метод "is" у меня статический, а для проверки пользователя используется id пользователя, что сохраняется в сессии. Если в сессии нет id, значит вошедший на сайт является гостем, если id в сессии есть, значит вошедший является зарегистрированным пользователем, а если есть id и он равняется единице, значит вошедший на сайт является администратором.
Метод "is" может вернуть одно из двух значений
false
| true
. Проверка осуществляется при помощи условия, с вставкой названия группы в метод. Например, мы хотим проверить является ли вошедший на сайт зарегистрированным пользователем, делаем так:
if (user::is('user'))
{
// Зарегистрированный пользователь
}
Все варианты:
user::is('admin') // Администратор
user::is('guest') // Гость
user::is('user') // Зарегистрированный пользователь
Как мне показалось, очень удобный подход. Группы можно добавлять, сколько угодно.
Возможно, будет интересно: Регистрация | Авторизация на сайте PHP и MySQLi.
- Жалоба