allowyRuby中极简授权实现
Allowy 是一个用于 Ruby(和/或 Rails)的简单授权库。它并不会强制你使用严格的 DSL,保持了简洁但功能强大。为什么要使用它?我曾经长时间使用 Ryan Bates 的非常出色的 gem,它做得很好。但是,Allowy 基本上是对 CanAbility 类的重构。随后我将它提取为一个 gem。
当能力定义超过 20 行时,Can 对我来说并不理想:追踪为什么允许(或不允许)某个操作变得非常困难。DSL 强制你使用类似 ActiveRecord 的范围或块,这使得维护变得更加复杂。能力类包含了所有定义,导致测试和维护变得困难,除非经过仔细的重构。
隐式权限 - Can 尝试使用类似 :manage
的别名进行简化(确实有效),但这也使得理解变得更加困难。隐式权限意味着你可以使用任何符号来表示权限,这可能会增加不必要的复杂性。
下载地址
用户评论