问题标签 [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 - 在 Rails 3 中处理多租户的最佳方法
我正在构建多租户应用程序。
所有数据的隔离都是由每个表中的 TenantID 列完成的。
为所有租户模型自动处理多租户的最佳方法是什么。
例子:
目前我在 CanCan gem 中看到了类似的东西,它可以获取特定用户参数的记录。但它没有为插入和更新操作提供任何东西。或者可能是我不明白该怎么做。
问候,阿列克谢·扎哈罗夫。
ruby-on-rails - Integrate Mongoid and CanCan
Have somebody tried to rewrite CanCan ActiverRecordAddtions for Mongoid http://github.com/ryanb/cancan/blob/master/lib/cancan/active_record_additions.rb
Regards, Alexey Zakharov
ruby-on-rails - 不能显示授权的视图元素
我正在尝试使用带有 Rails 的 devise/cancan 获得一些基本的身份验证/授权。我没有使用像 Ryan B 的截屏视频和其他示例这样的角色,而是尝试做一些基本的事情:
1 - 用户可以登录
2 - 用户只能编辑/销毁他们自己的文章(没有角色,您要么已登录并且可以创建新文章并编辑/销毁自己的文章,要么您已注销并且您只能见文章和登录)
我在第一部分使用设计,效果很好,但我无法让第二部分与 CanCan 一起使用。当您登录时,文章的编辑和销毁链接不会出现,即使文章是给其他用户的,直接 URL(例如 /articles/3/edit)仍然允许。
我ability.rb
的是
articles_controller.rb
:
以及列出文章的视图部分_article_list.html.erb
:
使用此设置,除非有毯子,否则视图中的编辑/销毁链接不会显示can :manage, :all
,甚至can :manage, Article
不起作用。正如我上面提到的,它也不会限制实际操作,因为您可以直接链接到编辑文章并且它允许这样做。
我不确定我在这里做错了什么。能得到一些帮助会很棒。
提前感谢
杰森
ruby-on-rails - Cancan 可以用于限制对单个模型的特定值的访问吗?
我有一个具有类别的 Rails 3 应用程序。类别可由具有类别所有者角色的人管理。但是类别所有者应该只能访问他拥有的类别,而不是其他人。我可以使用 CanCan 锁定管理功能,但我需要自己限制特定类别。
ruby-on-rails - 使用 CanCan 指定拒绝访问的原因
我真的很喜欢 Rails 授权宝石CanCan。但是,我发现自己在某些特权上有多个条件,并且我希望能够向用户提供不同的错误消息,具体取决于他或她被拒绝访问的原因。
CanCan 有这种行为的机制吗?我很难找到它。我是否必须自己分叉并添加该行为?
ruby-on-rails - 如果用户尝试访问授权部分,如何在 Rails 中显示登录模式
每当用户尝试访问授权内容时,您将如何实现一个模式窗口,上面写着“为了访问此区域,您必须登录..”并结合其下方的登录表单。我正在使用Rails 3、Devise 和 CanCan。
我的第一个想法是把它放在 application_controller.rb 的某个地方:
ruby-on-rails - Rails 可以授权嵌套资源
我有嵌套在用户资源中的项目资源。
我的康康能力课是:
和项目控制器:
我有几个问题:
是否可以拒绝:读取用户并允许:读取项目,以便每个人都可以访问 /users/10/projects,但不能访问 /users/10 或 /users?
如何拒绝用户访问:使用其他 user_id 的新操作?例如,如果我添加
此代码允许 id 为 42 的用户访问 /user/41/projects/new。
ruby-on-rails - inherit_resources 和 cancan 冲突
与inherited_resources 和Ryan Bates 的cancan gem 存在冲突。
我有一些简单的控制器
和路线
一切看起来都正确,但在尝试请求http://localhost:8080/issues/tag/tag1 我看到
从控制器中删除 load_and_authorize_resource 后 - 一切正常,但我需要访问控制。
知道如何解决这个问题吗?
ruby-on-rails - 在测试控制器时保持干燥,通过 CanCan 授权
我正在使用 RSpec 为 Rails 项目追溯编写一些测试。
我正在使用 CanCan gem 来提供授权。我决定编写一个规范来测试ability.rb
模型。然后我继续测试我剩下的模型。
我已经转向控制器,但我遇到了一个巨大的障碍:我正在重新测试我的能力!
基本上,我必须剔除一系列模型,并剔除它们的关联;否则响应只会返回403 Forbidden
。
这样做的原因是,控制器基本上负责担心授权。
我不太确定从这里去哪里。我最多删除 6 个模型,只是为了编写一个测试。我知道能力是有用的,这就是ability_spec.rb
它的用途。
所以这个问题真的是2倍的:
- 我应该单独测试能力模型吗?
- 控制器测试是否应该关注适当的权限?
Edit require 'spec_helper' include Devise::TestHelpers # 让您的规范访问助手
谢谢,
罗比
ruby-on-rails - 如何在 RoR3 中制作自定义授权 rools
有一些非常好的授权 gem,比如 cancan 和 declarative_authorization。但这里有一个问题:授权规则在类中是分开的,但我需要将它们放在表中,或者可能是一些 yaml 配置文件,以便最终在管理面板中更改它们。完美,如果我可以在管理面板中更改用户组和单个用户的权限。有什么解决办法吗?