同一角色的不同功能

时间:2015-02-19 22:40:53

标签: ruby-on-rails

我正在开发一个项目,我需要添加"功能"基于角色。我解释一下。

我的用户可以参加活动。但每个用户在每个事件中都有不同的角色。同样,在事件中具有相同角色的两个用户可以具有不同的"功能"。假设一个人可以更新资源,另一个人可以更新。

你知道任何可以实现这一目标的宝石吗?

- 更新 -

我的情况:

我的意思是拥有角色'活动组织者',我希望能够为此角色添加不同的功能。我想要一个活动组织者'能够将Shop添加到Event,但其他“活动组织者”可以添加{{1}}。不能做到。

示例:

你可以举例说明"公司"门锁由NFC钥匙控制。你有一个角色"访客",一些"访客"可以打开你的秘密实验室,有些人可以进入你的办公室。我不想创造一个"角色"对于我公司的每一扇门。

1 个答案:

答案 0 :(得分:1)

我维护acl9宝石可以做到这一点,还有Pundit和CanCanCan,以及many others here

更新

acl9中为不同的用户添加不同的功能:

user1.has_role! :updater, the_event
user2.has_role! :viewer, the_role

然后在你的控制器中:

before_filter set_event

access_control do
  allow :viewer,  of: :event, to: %i[show index]
  allow :updater, of: :event, except: :destroy
end