Независимо от используемого языка или инфраструктуры MVC, как мне обрабатывать различные представления на основе ролей?
Например (псевдокод):
views / post / show:
<% show post here %>
if (role.isAdmin or role.isModerator) {
<% show moderation tools %>
}
<% show rest of content %>
Мне не очень нравится идея помещать слишком много бизнес-логики в представление, но, похоже, нет других вариантов.Здесь?
Это становится все более и более запутанным, когда у вас есть больше ролей или разные уровни разрешений.Возьмите этот сайт для примера.Пользователи с более чем 200 повторениями видят меньше рекламы.Пользователи с более чем 500 повторениями имеют кнопку «retag».Затем вы получаете кнопку редактирования на 2000, кнопку закрытия на 3000, инструменты модерации на 10k и другие функции, если вы «звездный» модератор.