Как задать привилегии модераторам?

Привет всем! Делаю панель управления для сайта. Возникла проблема, как сделать уровень привилегий для модераторов. Допустим moderator1 может добавлять новости, а moderator2 только объявления?
  • Вопрос задан
  • 3138 просмотров
Решения вопроса 3
@victimofbrainlessness
У "задать привилегии" есть общепринятое название - access control list (ACL).
Есть множество алгоритмов/имплементаций ACL, в зависимости от задач. Так например можно раздавать доступ к действию (как в вашем вопросе), или к данным (построчно в таблице, во всем известном контакте можно задавать привилегии к просмотру объекта группам, отдельным пользователям, комбинации групп пользователей; или же запрещать).

Сложности при реализации различных моделей:
- гибкая структура данных для хранения привилегий
- разрешение конфликтов
- производительность
Часто бывает что пользователь принадлежит к нескольким группам, одной группе разшен доступ, а другой - запрещен. Если привилегии хранятся в базе данных, бывает что на проверку привилегий уходит больше запросов чем на само действие/данные. К тому же кэширование привилегий не всегда возможный вариант.
Ответ написан
Сделайте поля в пользователе (роли пользователя). "Может добавлять новости" или "Может добавлять объявления". При добавлении проверяйте наличие там флажков. В чем вопрос?
Ответ написан
Комментировать
@eydemidov
Добавьте разрешения в БД и назначьте разрешения соответствующим пользователям (например, "can_add_news"), а потом уже со страницы проверяйте, есть ли у соответствующего юзера нужные разрешения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы