同一角色的不同function

我正在开发一个项目,我需要根据角色添加“function”。 我解释。

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

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

– 更新 –

我的情况 :

我的意思是这是一个角色’活动组织者’,我希望能够为这个角色添加不同的function。 我希望一个“活动组织者”能够将Shop添加到Event ,但其他“活动组织者”不能这样做。

例:

您可以以“公司”为例,其门锁由NFC钥匙控制。 你有一个角色“访客”,一些“访客”可以打开你的秘密实验室,有些只是可以访问你的办公室。 我不想为我公司的每一扇门创造一个“角色”。

我保留了可以做到这一点的acl9 gem,还有Pundit和CanCanCan以及其他许多人 。

更新

在acl9中为不同的用户添加不同的function:

 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