0

私はこれらのモデルを持っています:

会社CompanyUserユーザー

CompanyUserには、その会社の他のユーザーなどを削除できる属性adminがあります。

カンカンで私は今これを持っていますが、何かが間違っています:

  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

正確なケースと一致しない場合は、Company、User、CompanyUserのモデルを投稿してください。

于 2012-12-25T18:52:13.257 に答える