0

Я работаю над приложением Rails 4 и им пытаюсь найти решение. Мне было интересно, как я могу реализовать CanCan, чтобы позволить пользователям получать доступ к определенным данным. Такие, как гость, могут просматривать только определенные части содержимого. Владелец может иметь полный доступ к контенту, а сотрудник может иметь частичный доступ.Доступ на основе CanCan с несколькими видами

Моего приложение состоит из

User 
- Developer 
- Organization 

Developer 
- Has many apps on its own 
- Has many organizations as founder or collaborator 

Organization 
- Has many founders and collaborators 
- Has many apps 

Как я могу ограничить это для гостей, которые не вошли в системе может просматривать некоторые аспекты профиля разработчика/организация/приложения, основатели имеют полный доступ к этой организации, у владельцев приложений есть полный доступ, и у соавторов есть некоторый доступ. Имеет ли это смысл?

ответ

2

cancan работает только с методом current_user. Я не нет, если есть способ, чтобы настроить этот

пример кода ниже может вести вас через управление содержимым только владельцем

class Ability 
     include CanCan::Ability 

     def initialize(user) 
     user ||= User.new # guest user (not logged in) 
      if user.admin? 
       can :manage, :all 
      else 
       can :read, Content 
      end 

     if user 
      can :create, Content 
      can :manage, Content do |content| 
      content.try(:user) == user 
      end 
     end 
     end 
    end 
Смежные вопросы