问题标签 [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.

0 投票
1 回答
1177 浏览

ruby-on-rails-3 - Rails 授权?签入模型与控制器

我正在对user模型进行检查以确定她/他是否有一个或多个task_list,如果她有多个 task_list,则仅允许她将其删除,否则将引发异常。我基本上在用户模型中有一个名为 delete_list 的方法,以允许速记删除,例如user1.delete_list(list1)

我正在讨论是否将检查放在 CanCan 中,它将作为控制器上的前置过滤器应用,或者是否也将其放在用户模型中。推荐的做法是什么?

0 投票
1 回答
260 浏览

ruby-on-rails-3 - CanCan: 'can' 方法再次获取记录,即使它们已经获取

我正在尝试传递这样的对象

在我的ability.rb中,我有以下内容:

每次我刷新页面时,cancan 会触发一个查询(从ability.rb)来获取业力,然后更改该业力,即使我已经获取了它(使用:include => { :karma => :changers }控制器中的查询选项)。

添加:

我猜测它正在发生,因为 karma 正在存储指向 :include 对象(而不是对象本身)的链接,当我将它传递给方法时,它实际上被破坏了。所以我现在正在考虑序列化..

有任何想法吗?

0 投票
1 回答
247 浏览

ruby-on-rails-3 - 使用 CanCan 时,如何为给定类的所有子类指定权限?

在我的模型中,我有很多模型 Item 的子类。我希望能够指定对于给定角色,他们对 Item 的权限适用于 Item 的所有子类,而无需明确列出它们;如果我添加新的 Item 子类,我不想记住更新权限。我怎样才能做到这一点?

比如这个权限

不允许客户服务代表阅读橱柜的详细信息,其中橱柜 < 项目。

0 投票
1 回答
3465 浏览

ruby-on-rails - 非 RESTful 控制器中的 Cancan 授权

我有一个这样的控制器,但没有模型类支持它。

在我的能力课上,我有

我正在关注Cancan 的 wiki Non RESTful Controllers 授权,它说您可以将符号作为第二个参数传递给双方授权!并能。

它不必是模型类或实例。

通常,第一个参数是尝试执行的“动作”

第二个参数是正在执行动作的“主题”。它可以是任何东西。

我也做了同样的事情,但还是不行。
注意:我也试过反过来做

正如wiki中所说,但这也行不通。

如果有任何帮助,我的控制器没有任何操作,如显示、新建、创建或任何其他基本 CRUD 操作。
康康:1.4.1

0 投票
2 回答
1021 浏览

ruby-on-rails-3 - 如何根据用户在 Rails 3 中的角色重定向用户?

我试图弄清楚在用户登录到 Ruby/Rails3 应用程序后,如何根据他们的角色在特定 URL 上重定向用户。

到目前为止,我使用 authlogic gem 进行身份验证,使用 cancan gem 进行角色设置。

角色就像这样(在 app/models/user.rb 中定义):

现在有 app/controllers/user_session_controller.rb 负责登录。我想做这样的事情:

由于以下错误,这不起作用:

有没有一种简单或优雅的方法可以根据用户的角色将用户重定向到特定的 URL?

(角色在用户表的 mysql 列“角色”中定义。)

0 投票
1 回答
873 浏览

ruby-on-rails - cancan 和inherited_resources 覆盖集合

我想我正在与我最喜欢的两个宝石发生冲突。考虑以下:

CanCan 似乎没有调用收集方法。我觉得应该。

有没有已知的工作?我在做傻事吗?

谢谢!

0 投票
3 回答
1088 浏览

ruby-on-rails - rails CanCan - 定义嵌套模型的权限

我有两个模型:

我想定义类似:

例子:

我试过了:

但是那个错误。有任何想法吗?

0 投票
1 回答
278 浏览

ruby-on-rails - CanCan - 为什么 can: create 规则在我不调用 create 时运行?

我的能力.rb 文件中有以下内容:

奇怪的是,当我调用 ThreadParticipation.new 时,该规则是 rulling 并且我看到了记录器输出?

为什么我在做 .new 时可以 :create 运行

谢谢

0 投票
6 回答
8003 浏览

ruby-on-rails - 测试使用 CanCan 和 Devise 与 RSpec 的视图

我试图测试一个简单的索引视图,其中包含以下代码:

MyModelsController有以下选项(继承资源 + CanCan + 设计):

运行规范时,它会在该行崩溃- if can? :destroy, MyModel

没有追溯,没有任何依据...

我想也许我在测试视图时没有被授权和签名,但Devise::TestHelpers应该只包含在控制器测试中(这就是我的方式)。

我试图覆盖方法可以吗?在两者Ability和控制器中,但这没有任何效果。

0 投票
2 回答
2820 浏览

ruby-on-rails - Rails - CanCan - access_by

谁能向我解释 CanCan 的accessible_by工作原理?它如何知道用户与需要限制的事物之间的关系是什么?