【问题标题】:CanCan based access with multiple views具有多个视图的基于 CanCan 的访问
【发布时间】:2013-08-26 22:11:43
【问题描述】:

我正在开发 Rails 4 应用程序,我正在尝试提出解决方案。我想知道如何实现 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

我如何将此限制为未登录的客人可以查看开发人员/组织/应用程序配置文件的某些方面,创始人拥有组织的完全访问权限,应用程序所有者拥有完全访问权限,合作者拥有一些访问权限。这有意义吗?

【问题讨论】:

    标签: ruby-on-rails activerecord ruby-on-rails-4 cancan activemodel


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 2018-01-14
      • 2013-01-17
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2018-02-20
      • 2018-03-04
      相关资源
      最近更新 更多