0

我正在开发 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

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

4

1 回答 1

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
于 2013-08-26T22:29:13.517 回答