declarative_authorization gemを使用して、プロジェクト管理者とプロジェクト コラボレーターの役割を作成しようとしています。
ユーザーとプロジェクトのマッピングを保持する「コラボレーター」というテーブルがあります。
モデル:
計画
has_many :collaborators
has_many :users, :through => :collaborators
ユーザー
has_many :collaborators
has_many :projects, :through => :collaborators
協力者
belongs_to :user
belongs_to :project
project_admin および project_collaborator ロールの DSL を定義するためのガイダンスが必要です。私は次のことを思いつきました:
authorization do
role :guest do
has_permission_on :users, :to => [:read]
end
role :project_admin do
has_permission_on :projects, :to => :manage do
if_attribute :project_admin => true
end
end
role :admin do
has_permission_on :users, :to => [:delete]
end
end
privileges do
privilege :manage do
includes :create, :read, :update, :delete
end
end
提案/ヘルプに感謝します。
ありがとう!