0

我有这些模型:

公司公司用户用户

CompanyUser 有一个属性 admin 允许他删除该公司的其他用户等。

在cancan,我现在有了这个,但出了点问题:

  can [:edit, :update, :read, :destroy, :promote, :demote], CompanyUser, :company_users => { :user_id => user.id, :admin => true }

当他是该公司的管理员时,我只想允许用户编辑,更新,... CompanyUser。我需要如何定义它?

4

1 回答 1

0

此代码应类似于您正在寻找的解决方案:

def initialize(user)                                                          
user ||= User.new
can [:manage, :promote, :demote], CompanyUser do |cu|
  user.company_user.admin == true &&            # user is admin and
  user.comany_user.company_id == cu.company_id  # user is in the same company
end

如果与您的具体情况不符,请发布公司、用户和公司用户的型号。

于 2012-12-25T18:52:13.257 回答