Vanilla authlogic / cantango设置,在测试期间使用硬编码roles_list
进行测试,返回[:user]
。测试permissions.yml文件:
roles:
user:
can:
manage:
- User
在第一次请求时,user_can?(:manage, User)
符合我的预期。然而,在随后的请求中,它不再是真的,我的许可就消失了。
每个请求都会更改 Duh:/ current_user
和current_user_session
个变量;不确定是不是因为我在开发环境中并且正在重新加载某些东西,但它会勾勒出我的一点点。
ApplicationController
中的实现遵循默认的authlogic示例。
如果我加载控制台:
pry(main)> u = User.first
=> #<User id: 2, email: "ohai@wtf.com", [...]
pry(main)> a = CanTango::Ability.new u
=> [lots of stuff, available on request]
pry(main)> a.can?(:manage, User.new)
=> true
pry(main)> a.can?(:manage, User.new)
=> true
我试图在cantango.rb中关闭cantango的缓存(以防万一)每个cantango的文档[...]&gt;
任何提示/提示/指针/来源/文档?
答案 0 :(得分:2)
如果我将permissions.yml文件更改为以下(这些是角色,理论上不是用户,但没有guest角色,我从未在代码中的任何地方引用它,它不起作用)工作
roles:
user:
can:
manage:
- User
guest:
cannot:
manage:
- User
到目前为止,我仍然需要暂停缓存。
我现在放弃了cantango;虽然我有重要的基于角色的权限需求,但这引起的麻烦不值得,到目前为止,似乎使用一些相同元技术的更有针对性的解决方案将更清晰,更容易。