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