@xxx44yyy

Как используя Devise, Cancancan, Rolify дать отдельным пользователям возможность работать с объектами?

Запутался. Одна роль: админ. Можно добавить другие. Три пользователя. Один пользователь - админ. Два других - без ролей. Также есть Книги.

Хочу чтобы админ мог делать всё с книгами и с пользователями. А вот пользователь-1 мог бы только прочитать книгу-1, а пользователь-2 мог бы только читать и редактировать книгу-2. Как это сделать? Мне в голову приходит только самый тупой способ - это сделать две роли и прописать их в ability, типа такого:

if user.has_role? :admin
    can :manage, :all
elsif user.has_role? :role_for_read_book1
    can :read, Book.find(1)
elsif user.has_role? :role_for_read_edit_book2
    can [:read, :edit, :update], Book.find(2)
end


Думаю так сработает, но это какая-то тупая схема.
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 1
vesh95
@vesh95
Инженер-электроник, программист
Лучше посмотреть шире, первый - редактор, второй - читатель.
И выставить им роли editor и reader, а в abilitys. Впринцыпе получится как в вашем примере.
Не стоит забывать, что роль можно давать на отдельный ресурс.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 100 000 до 250 000 ₽
iGooods.ru Санкт-Петербург
от 120 000 до 180 000 ₽
Rentu Тюмень
от 80 000 до 130 000 ₽