问题标签 [cancan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Cancan 并不总是显示授权链接
我正在使用 Cancan 来控制User
能力,并且最近遇到了一个奇怪的问题:我的部分有一个“破坏”超链接,它有时只对授权用户显示。当我刷新页面时,不知道链接是否存在。
我通过以下方式为我的Event
模型定义了能力:Ability.rb
我regattas(true)
用来防止系统使用缓存的关联,以防最近发生了变化。
在我的 rspec 测试中,这对当前用户非常有用,无论是在我的测试中还是在我的Ability.rb
测试中EventsController
。
这里是破坏。在我的部分销毁超链接,_event.html.erb
我只想在用户有能力销毁时出现event
:
关于如何修复闪烁并让授权用户始终显示“销毁”链接的任何建议?有没有其他人遇到过这个问题?
更多背景:我对另一段代码没有这个问题,而不是部分代码,如下所示:
谢谢大家。
ruby-on-rails - CanCan 和数据集
我已经为此苦苦挣扎了一段时间,终于到了 CanCan 似乎不允许您授权记录集合的地步。例如:
ads_controller.rb
能力.rb
这会在尝试访问索引操作时产生未经授权的访问消息。
但是,如果您更改 index 操作中的授权调用以检查 Ad 类而不是像这样的集合
...它工作正常。
任何帮助解释这一点将不胜感激。
提前致谢。
附言。当我试图解决这个问题时,我最初得到了重定向循环。事实证明,有一个带有推荐的 rescue_from 的 gotchya,您将其放入应用程序控制器中,以便为您提供很好的错误消息。如果您的 root_path 设置为您授权的相同位置!call 不正确(或失败),您将获得重定向循环。注释掉rescue_from 学到了一个艰难的方法。
ruby-on-rails - Rails - CanCan - 基本问题
如何从模型中使用 CanCan?
假设我有这样的关系:Employee belongs_to Store,Boss manages_many (has_many) Stores。我究竟如何使用 CanCan(正确的方法)来限制每个特定老板的访问权限,使其只能读取或更新属于他特定商店的其他员工?
非常感谢谁能回答!:)
ruby-on-rails-3 - RSpec 和 CanCan 控制器测试
我在一个项目中使用 RSpec 和 CanCan。我正在与能力类相关的规范中测试我的权限逻辑。对于控制器,我真的只是想确保我正在进行授权检查。我设置了一个控制器宏,但它似乎无法正常工作。
所以我真的有两个问题。一,该策略是否足以测试我的控制器的权限逻辑(或者我应该更多地测试控制器授权逻辑)?
二,有没有人看到我做错了什么使它不起作用?
我从 RSpec 得到的输出如下
我不确定当我在控制器中调用 !authorize 时应该检查哪种方法(或者它是通过 load_and_authorize_resource 自动调用的)
authorization - 使用 cancan 阻止对控制器的访问
我有一个管理员控制器,我希望只有定义为管理员的用户才能访问该控制器。
我的能力等级:
我的管理员控制器:
当我尝试访问/admin/users_list
(使用管理员用户或不使用管理员用户)时,我收到以下错误:uninitialized constant Admin
我究竟做错了什么?这是限制对控制器的访问的正确方法吗?
ruby - 在 ruby 中使用 cancan 时出错:“未初始化的常量 CanCan::Rule::Mongoid”
这是我的控制器:
这是我的能力课:
当尝试访问“/admin/users_list”(有或没有管理员用户)时,我收到以下错误:
未初始化的常量 CanCan::Rule::Mongoid
有什么想法吗?
ruby-on-rails - Rails 3 和 Devise 的角色授权
自从我升级到 Rails 3 后,我就一直在使用设计,那是在第一个或第二个 beta 版本左右,现在我还需要一些角色。在网上搜索后,看起来 CanCan 应该是最好的解决方案。但我不确定 CanCan 是否可以管理我的需求,就像我想要一个可以编辑/销毁主题的论坛版主,但创建主题的用户也应该能够编辑,那么我该怎么做呢?
ruby-on-rails - 无法使用 rspec 控制器 POST 创建操作进行测试(设计和 cancan)
我很难让控制器通过 rspec 测试。我想测试 POST 创建操作是否有效。我正在使用 rails (3.0.3)、cancan (1.4.1)、devise (1.1.5)、rspec (2.3.0)
模型非常简单
控制器也是标准的(直接从脚手架出来)
我想通过的 rspec 测试是(请原谅标题,也许不是最合适的)
然而我得到的只是
可以测试其他操作并通过(即 GET new)
这是 GET new 的测试
为了完成这里是能力文件
有任何想法吗?我的猜测是我使用了错误的 rspec 期望,因为代码确实有效(只是测试没有按预期执行!)
ruby-on-rails-3 - 使用 Curl 时,Devise CanCan 无法通过 Post 创建用户
我遵循了 Tony Amoyal 的指南Rails Authentication with Devise and CanCan part 2 – Restful Resources for Administrators并创建了用户控制器。
我启用了基于令牌的身份验证,并且 CanCan 设置为仅允许管理员访问以执行任何有用的操作。
注意的代码片段是
现在,当我使用 curl 发出 GET、PUT 和 DELETE 请求时,它工作正常。注意 auth_token 参数(它是管理员用户的令牌)
POST 请求似乎不起作用并被重定向,这表明身份验证没有使用提供的令牌启动。
发帖请求:
开发日志:
卷曲的使用不正确吗?还是
我需要先登录,然后在 POST 请求中的 cookie 中设置会话?还是
我在做一些愚蠢的猴子?
我对 Rails 和 Ruby 相当陌生,因此非常感谢任何帮助。谢谢。
ruby-on-rails - 是否可以在单个 Rails 应用程序中使用域或子域的 cookie 用户会话
我想在一个多子域应用程序中登录管理员和简单用户。管理员应该有权访问所有子域(即他们的会话应该存储在所有子域都可用的 cookie 中)。用户应该只能访问他们登录的子域。
例如:
admin "administrator" 在域 url (mydomain.com) 或任何子域 (例如 abc.mydomain.com) 登录并保持登录所有子域。因此,他(“管理员”)可以访问 efg.mydomain.com、abc.mydomain.com、mydomain.com 等。
用户“simpleuser”在 abc.mydomain.com 登录。他(“simpleuser”)只能访问此子域(即 cookie 仅与 abc.mydomain.com 子域相关)
我知道可以选择将 cookie 关联到子域或域,但我想在同一个应用程序中混合这种行为。有谁知道一种方法?
这适用于 Rails 3
我不想通过我的应用程序(即通过 cancan 或声明性授权)限制对子域的访问。理想情况下,应通过 cookie 在子域级别阻止访问。我相信这是一种更安全的方法,因为它不必再设置一个软件来控制对站点的访问。