Роли и ограничение доступа

АвторСообщение
Machino
Разработчик
4 года назад

На вашем сайте имеется возможность наделять пользователей определенными правами. Для этого существуют разрешения и роли. Пользователям назначаются роли, а ролям - разрешения.

Разрешение - это право на выполнение какого либо действия, например, создание страницы или доступ к форуму. Разрешения бывают двух типов. Первые назначаются ролям непосредственно при создании ролей. Вторые назначаются ролям при создании различных объектов на сайте (страниц, меню, виджетов, форумов и т.д.), например, при создании пункта в меню можно указать какие роли смогут видеть этот пункт, а при создании форума - создавать темы.

Роль - именованный набор разрешений. Роль может быть назначена одному или нескольким пользователям. Пользователь, имеющий роль получает все разрешения, доступные этой роли. Одному пользователю могут быть назначены несколько ролей, либо ни одной. Пользователь не имеющий ни одной роли теряет возможность авторизовываться на сайте. На каждом сайте существуют 3 роли, которые невозможно изменить:

  1. Администратор. Имеет все разрешения первого типа. Лишить администратора этой роли может только другой администратор. Роль назначается автоматически первому зарегистрированному на сайте пользователю. Очень хорошо подумайте перед тем, как наделить такой ролью другого пользователя.
  2. Пользователь. Имеет возможность авторизовываться на сайте и выполнять стандартные для подобных ролей действия (писать комментарии, создавать темы на форуме и т.д.). Роль назначается автоматически всем зарегистрированным пользователям. Если пользователи регистрируются используя email и пароль, им необходимо подтвердить email для получения этой роли.
  3. Не подтвержденный. Не имеет никаких разрешений. Назначается всем, кто заполнил email и пароль в форме регистрации, но еще не подтвердил email. Для подтверждения email необходимо получить письмо и перейти по ссылке.

Помимо этих ролей вы можете создать любое количество дополнительных ролей с нужными разрешениями. Рассмотрим пару примеров:

  1. Модератор. Подобная роль может понадобиться если есть необходимость в помощнике администратора с широкими, но не максимальными правами. Такой роли можно назначить все разрешения, кроме "Просмотр и изменение настроек сайта", "Управление ролями", "Назначение ролей". Очень важно не дать модератору возможность изменить собственную роль или назначить себя администратором.
  2. Лучший сотрудник. Роль без каких либо разрешений. Просто статусная роль. Такую роль можно назначать вместе с ролью "Пользователь" для выделения пользователя среди других (оплативший какую-либо услугу, вступивший в какое-либо сообщество, выполнивший какую-либо работу и т.д.).

Разумеется, название роли придумываете вы сами.

Сообщение было изменено пользователем Machino 4 года назад