|
|
1
3
我想 CanCan 可以帮助你。它使用简单,应该做你所需要的。这是一个铁路公司: Authorization with CanCan |
|
|
2
2
我浏览了大量不同的授权和ACL插件,像你一样,我不喜欢他们大多数人使用的CRUD方法。 最后,最适合我的是一个类似于雷德明使用的设置。我不知道它是否源于任何命名插件,但我花了一些时间来了解它,并为我的情况做了必要的调整。 基本上,它所做的是允许使用控制器和操作,无论是全局的还是特定的模型。首先要指定可分配的不同权限:
下一步是将一个或多个权限分配给一个角色,该角色是一个具有可存储权限的序列化字段的模型,即:
然后通过一个成员模型将不同的角色映射到用户。成员资格还可以与特定的模型(如Project)进行映射,因为您可能被允许管理一个项目,而不是另一个项目,或者它可以是全局的,就像某些应该受到限制的索引操作,但您还不知道要针对哪个模型进行授权。 在控制器中,您可以使用以下方法验证所有这些:
当然,authorize是一种检查当前用户是否是具有当前控制器和操作所需权限的任何角色的成员的方法。 虽然这是一个很长的描述,但它的工作原理是:)它比其他的ACL插件复杂得多,但我认为它是最干净的替代,同时仍然允许我需要的灵活性。 |
|
cluster1 · 采取独立的新行动的好处是什么? 1 年前 |
|
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 1 年前 |
|
|
Fred Willmore · Rails控制器不呈现任何模板 2 年前 |
|
|
Diogo Amaral · 实现API请求的正确方式 2 年前 |
|
|
Meknassih · 在控制器方法中分配给模型没有任何作用 2 年前 |
|
|
Michael Ding · Rails上的默认会话到期问题 2 年前 |
|
|
Flávio · 基于另外两个生成数组 2 年前 |