Ruby 基于配置文件和目标对象的授权

Ruby authorization based on profile and target object

我正在从事一个项目,该项目涉及创建具有以下特定特征的用户:

此应用程序的目的是管理和跟进交易。

每个用户都可以创建交易,这些交易会自动链接到他们的公司、他们的业务线和他们的部门。

不属于同一公司、业务线和部门的所有用户都无法访问交易。换句话说,用户只能访问与用户具有相同特征的交易。

有没有可能用传统的rubygems建立这么复杂的授权矩阵?

您可以进行查询以查找用户可以访问的所有项目。假设用户只有一个公司、部门和业务线:

class User < ActiveRecord::Base
  has_one :company
  has_one :department
  has_one :business_line

  def deals
     Deal.where(company_id: company_id, 
          business_line_id: business_line_id,
             department_id: department_id
  end
end