Rails 4 - Rolify - 设置范围角色

时间:2016-08-07 02:23:48

标签: ruby-on-rails roles rolify

我正在尝试在我的应用上设置角色。

我有称为用户,个人资料,组织和角色的模型。协会是:

用户

class User < ActiveRecord::Base
   rolify strict: true 
   attr_accessor :current_role

资料

belongs_to :user
belongs_to :organisation

组织

belongs_to :owner, class_name: 'User'
has_many :profiles

resourcify

角色

class Role < ActiveRecord::Base

  scopify

  has_and_belongs_to_many :users, join_table: "users_roles"
  belongs_to :resource, :polymorphic => true


  validates :resource_type,
            :inclusion => { :in => Rolify.resource_types },
            :allow_nil => true

我使用Pundit进行授权,并且我有一个角色控制器,其中定义了CRUD操作。

我的流程是每个组织属于一个用户(“所有者”)。该用户可以将角色分配给属于同一组织的配置文件。以这种方式分配的每个角色都将限定为用户拥有的组织。

在我的角色创建操作中,是否有办法强制将角色范围限制在将角色分配给配置文件的用户(所有者)的组织中。

我在角色控制器中的创建操作有:

def create
    @role = Role.new(role_params)

    respond_to do |format|
      if @role.save
        format.html { redirect_to @role }
        format.json { render :show, status: :created, location: @role }
      else
        format.html { render :new }
        format.json { render json: @role.errors, status: :unprocessable_entity }
      end
    end
  end

我想知道我是否可以在角色控制器中调用一个新动作:assign_scoped_role

我可以从rolify文档中看到,这是分配作用于类的角色的方法:

user.add_role :moderator, Forum.first 

我不确定我是否应该在角色控制器,组织控制器或配置文件控制器中尝试这样做。

有人能看到怎么做吗?

0 个答案:

没有答案