@DSergeev

Как выводить представления в зависимости от роли пользователя?

У меня есть представление Manage/Index.cshtml, три роли Admin, SuperUser, User и три таблицы в БД. Мне нужно вывести в этом представлении для роли Admin все три таблицы, для роли SuperUser две таблицы, а для User одну таблицу. Эти таблицы также нужно изменять. Как такое правильно реализовать?
Вывод и редактирование таблиц осуществляется через Entity framework 6, проект на MVC5
  • Вопрос задан
  • 2863 просмотра
Пригласить эксперта
Ответы на вопрос 3
Soldata
@Soldata
Программист, владелец IT-компании.
Задачу лучше решить на уровне контроллера, а не в представлении. В зависимости от роли создавайте соответствующие запросы к базе, а в представление должна пойти лишь одна модель с результатами. Как отрисовать результат в представлении - уже другая задача. А реализовать изменения в таблицах будет еще проще. Вы же будете выводить в модели поле ID? Достаточно его, чтобы реализовать редактирование отдельных записей, независимо от ролей.
Ответ написан
@DSergeev Автор вопроса
Допустим есть такая модель
public class Category
    {
        public string Name{ get; set; }
        public Users User { get; set; } 
    }

Когда пользователь с ролью админ создает эту категорию, он назначает ей пользователя. Нужно чтобы у роли User было право редактировать эту категорию, но только ее имя, чтоб он не мог изменить назначенного пользователя. Как в этом случае быть?
Ответ написан
Комментировать
@asdz
Может просто в представлении проверять членство роли и соответсвенно выводить нужный кусок страницы?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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