2017-01-10 18 views
0

Ruby on Rails用のRolify Gemに関する疑問があります。私はespecified組織の権限を作成したいRuby on Rails用のRolify gemによる複数のアクセス許可

は、例えば、

私は組織1のための管理者権限を持っている(Organization.find(1)

私は組織2のためのユーザー権限(Organization.find(2))を持っている

私は組織3の司会者権限を持っています(Organization.find(3)

組織はクライアントによって区切られていますが、多くの異なるpermi多くの異なる組織の中にあります。

例えば、ログ内で使用しようとしましたが、user.add_role "full_admin", Organization.find(1)と私は望む機能がありません。 Rolifyのこのクエリはarmazened DBで はあなたに感謝し、誰も私を助けることができる場合、私は非常に感謝される

2.1.5 :111 > user.add_role "full_admin", Organization.find(1) 
 
    Organization Load (1.1ms) SELECT `organizations`.* FROM `organizations` WHERE `organizations`.`id` = 1 LIMIT 1 
 
    Role Load (1.2ms) SELECT `roles`.* FROM `roles` WHERE `roles`.`name` = 'full_admin' AND `roles`.`resource_type` = 'Organization' AND `roles`.`resource_id` = 1 LIMIT 1 
 
    Role Exists (1.0ms) SELECT 1 AS one FROM `roles` INNER JOIN `users_roles` ON `roles`.`id` = `users_roles`.`role_id` WHERE `users_roles`.`user_id` = 1 AND `roles`.`id` = 7 LIMIT 1 
 
=> #<Role id: 7, name: "full_admin", resource_id: 1, resource_type: "Organization", created_at: "2017-01-06 19:58:31", updated_at: "2017-01-06 19:58:31">

、フォローです!

答えて

1

Rolifyでは、次のコードのようにスコープされたロールを使用できます。私はRolify wikiからコピーしました。

user = User.find(2) 
user.add_role :moderator, Forum.first # sets a role scoped to a resource instance 
user.has_role? :moderator, Forum.first 
=> true 
user.has_role? :moderator, Forum.last 
=> false 

上記のコードからわかるように、組織ごとに異なる役割を設定できます。役割に基づいて権限を設定するには、 "Pundit"のようなライブラリを使用することを検討することができます。

+0

回答ありがとうございます、私は間違ったことをしている可能性があります、私は再び私のコードを見ることができます、と私は他の疑いがある場合は、 –

関連する問題