问题标签 [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 回答
337 浏览

ruby-on-rails - 这个用户权限设置有意义吗?

我正在构建一个 Rails 3 应用程序,并且正在设计一个复杂的用户权限工具,用户可以在其中Company确定每个PM.

想象一下这个场景——公司想要在三种类型的数据上建立特定的角色。

  • 项目表
  • 客户表
  • 公司帐户(即公司表)

我正在考虑添加一个包含这些字段的角色多态表:

  • user_id(此角色适用的用户,除非 all_users == true)
  • 项目类型(例如“项目”、“客户”或“公司”,除非 all_items == true)
  • 商品编号(如上)
  • 角色(例如“读取”、“编辑”、“销毁”,甚至“自定义”)
  • all_users(布尔值:此项的角色是否适用于所有用户)
  • all_items(布尔值:此用户的角色是否适用于所有项目)
  • company_id(“拥有”此角色的公司)

我觉得 CanCan 将是实现此目标的一种不错的精益方式,但这是我的问题。1. 上表是一个很好的方法吗?2. CanCan 能否与此相结合以创建有效的解决方案?

0 投票
1 回答
1613 浏览

ruby-on-rails - Rails 3:向用户添加角色

我使用 cancan 作为我的授权引擎。

我已经在用户中拥有角色:

我也有添加和检查角色的方法:

# roles_mask :integer在用户模型中。

但是,我想要一个after_save :add_normal_role将正常角色分配给用户的。

基本上,我无法(不知道)如何为每个用户分配角色。

这就是我所拥有的,它不起作用:

谢谢

0 投票
2 回答
363 浏览

ruby-on-rails - 简单的CanCan问题

我刚开始使用 CanCan,下面是代码示例:

这是来自 CanCan 的 github 存储库,但这似乎不起作用(它返回 false 并停止...代码运行)。

当我将视图更改为 时<% if can? :read, Link %>,它可以工作。但是,这与 CanCan 自述文件不同。你知道我哪里错了吗?

0 投票
1 回答
971 浏览

cookies - 使用子域 cookie 进行身份验证可以轻松访问其他子域

我正在使用 Rails 3,devise,cancan。我已将 cookie 设置为特定于子域​​,并将子域与用户名一起用作身份验证密钥。

IE

因此,当我在特定子域中对用户进行身份验证时,该用户无权访问任何其他子域。如果我只是编辑他的 cookie 会话(firebug)并更改 cookie 的域(即从 foo.mydomain.com 更改为 fee.mydomain.com),则用户可以获得对新子域的访问权限。

我意识到我可以使用 cancan 阻止访问,但理想情况下我想通过身份验证来限制用户。它以某种方式感觉更安全,并且需要更少的配置(在ability.rb 中少了几行)。

知道如何防止这种死的简单黑客攻击吗?

0 投票
2 回答
340 浏览

ruby-on-rails - 在 Rails 中为企业\单用户帐户设置身份验证\授权系统的最佳方法是什么?

我正在建立一个网站,其中有多种类型的用户。例如考虑亚马逊或 CDW。他们有个人账户,普通人可以只买一本书或一台电脑,他们也有公司账户,有多个可以进行购买的子用户和一个可以跟踪整个账户支出的主管/超级用户,但也关闭子用户的帐户或为其帐户添加新的子用户。

我显然可以在这里推出我自己的系统,但我会更好地从设计、authlogic 或 restful_authentication 之类的东西与 CanCan 或类似的授权系统开始吗?还是已经有类似的东西了?有没有人有过设置这样的东西的经验?有什么注意事项?

谢谢

0 投票
1 回答
771 浏览

ruby-on-rails - RSpec 新手:设计/Cancan 导致其他工作控制器规范失败

我正在尝试让 RSpec 控制器规范通过。它几乎与脚手架生成的规范相同,只是用户首先登录设计。如果我从控制器(检查权限)禁用“load_and_authorize_resource”,一切正常。但是如果我把线放回去,它会失败:

我曾假设规范没有正确登录用户,但 puts current_user.role.name 确认用户已正确登录,并具有必要的角色。在浏览器中执行实际过程确认它按预期工作。

有人有什么建议吗?我很困惑。下面的控制器:

...和规格

...并支持规范中的内容:

非常感谢...

0 投票
2 回答
7824 浏览

ruby-on-rails - Rails3 - CanCan - 未初始化的常量 Ability::Page

我刚刚将 cancan 1.5.0 添加到我的 rails 3 应用程序中,这是我的能力文件 -

我有一个自定义类(非休息功能)

如您所见,我正在为一个不平静的课程使用正确的功能,但我仍然收到此错误 -

这是堆栈跟踪的开头 -

谢谢,亚历克斯

0 投票
1 回答
132 浏览

ruby-on-rails - Rails 3:处理隐私功能

我的应用程序的一部分负责将所有用户操作写入提要。但是,我想允许用户控制他的隐私功能(停止发送到提要,只发送一些操作等)。

最好的方法是什么?我应该使用 Cancan 或类似的东西,并为不同的隐私选项赋予角色吗?

谢谢

0 投票
2 回答
4475 浏览

ruby-on-rails-3 - CanCan 错误“未定义的方法角色?” 与设计

嘿,我希望你能帮助我:

我正在阅读本教程

http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/我一步一步做了。

我不太确定在哪里放置角色?教程中的方法,因为它没有说明放置它的位置。

现在当我想注册或登录时它给了我这个错误

非常感谢

0 投票
1 回答
745 浏览

ruby-on-rails-3 - CanCan多态资源访问问题


我不太明白如何在 CanCan 的这种特殊情况下限制对链接的访问。我总是显示“编辑”链接。所以我认为问题在于我对cancan方法(load_和authorize_)的错误定义。我有这样的 CommentsController:

我在 comments/index.html.erb 中有以下代码从其他控制器呈现文件:

在这种情况下,您可以将“#{get_commentable_partial_name(@commentable)}”视为“文章”。“articles/show.html.erb”的内容:

我的能力.rb:

我试过像这样调试这个问题

我总是在能力检查中得到“=> true”

注意:user.role == author and article.user_id != user.id

如果您需要更多信息,请写

谢谢你的时间&&对不起我的英语