问题标签 [cancancan]

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 回答
181 浏览

ruby-on-rails-4 - 注册表单中的管理员复选框在 DB 中不反映 true

我在设计注册表单中添加了一个管理员复选框,以表示给定用户是否注册为管理员,但是当用户在 DB 中创建时,管理员仍然提交为 false。

数据库架构

0 投票
1 回答
371 浏览

ruby-on-rails - Rails:Ability 和 ActiveAdmin 没有按预期工作

我正在使用 ActiveAdmin 和 Cancancan 开发 Ruby on Rails 项目。我为角色用户定义了一些能力,例如super_administrator,administratorsubscribers.

在编写了一些单元测试之后,我发现能力不能正常工作,而且我不知道哪里出了问题。

administrator具体来说,我有一个时事通讯模块,我只想super_administrator管理它。

这是我的能力摘录

我的测试

这个测试会中断,因为即使我编写了订阅者不管理 Newsletter 的功能,Newsletter 也会被破坏。

奇怪的是,如果我测试订户的能力,一切正常:

我试图直接在浏览器中手动测试,但能力也不起作用。

我不明白我错过了什么。有人知道我的代码有什么问题吗?

我的项目

  • 红宝石 2.2.2
  • 导轨 4.2.3
  • ActiveAdmin 1.0.0 pre1
  • 康康康 1.12.0
0 投票
1 回答
69 浏览

ruby-on-rails - Rails_admin,使用 cancan 时模型列表显示为零

我有模型OwnerShopItem

Owner有很多ShopsShops有很多Items

我对康康舞的能力:

当我打开我的 rails_admin 仪表板时,它说我有零Items并且页面List of Items是空的。

但是,当我打开商店页面时,我可以看到它的所有商品,并且可以在商店页面上更改它们。

当我这样编写代码时:

它给我一个错误:

为什么我不能列出所有我ItemsItems List

0 投票
1 回答
1604 浏览

ruby-on-rails - CanCanCan:授权/取消授权特定模型属性

我一直在摆弄 CanCanCan gem 来限制普通用户的操作,但到目前为止,我只设法限制对整个模型的授权,而我真正需要的是限制对其某些属性的访问。

例如,在我的用户模型上,除了用户/密码/电子邮件的东西,我还有一个布尔值用于管理员,我用它来验证登录用户的状态,在这种情况下,如果 user.admin?,它可以访问/管理一切,否则,它应该能够读取所有内容,并且只有在 user.id 匹配时才能更新自己的记录。

我已经阅读了很多次文档,最接近的是将它添加到 app/models/ability.rb

这没有任何作用。

所以,

问题:用户可以 :update 整个模型,或者只是 :read 它,我不能将它设置为 :update 或 :read 特定属性。

我需要什么:用户能够 :edit 仅特定属性。

问题:限制属性的正确语法是什么?我必须在其他一些文件上设置任何其他配置吗?

我的 Ability.rb 文件:

我正在使用的宝石(除了默认的 Rails 4 宝石):

谢谢!

0 投票
2 回答
100 浏览

ruby-on-rails - How to hide checkboxes for user authorization

Good day, I am using the CanCanCan gem, an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access. It is working however when users sign up, all of the options including 'admin' and 'banned' show up. I want to hide those two checkboxes and leave 'customer' and 'sitter'. How would I do that?

user.rb

edit.html.erb

https://github.com/CanCanCommunity/cancancan

0 投票
2 回答
585 浏览

ruby-on-rails - 具有多个角色的用户

我正在创建一个有许多用户和许多组织的应用程序。

一个用户可以在多个组织中,并且在每个组织中他们可以有一个角色。目前,只有“组织管理员”和“基本用户”。编辑:有关更多上下文,我希望用户能够成为 Org 1 的 Org Admin 和 Org 2 的基本用户,这意味着该用户对每个组织都有不同的能力。

组织管理员可以将用户添加到组织,但我设置能力的方式目前并不能阻止基本用户也这样做。

在此之后,我目前有...

...当然,允许任何人创建用户

我需要类似的东西

但仅适用于他们是 OrgAdmin 的 Org,因此这将阻止 URL 更改。但是,这不起作用,因为任何形式要么返回 false 并阻止任何用户创建,要么返回 :manage Org 作为 true 让每个人都可以做任何事情,而不管角色如何。

任何想法或指向正确的方向将不胜感激。

编辑:此外,我可以正确创建 :manage/:read, Organization 部分的方式可以防止人们管理/查看他们不应该管理/查看的内容,但会抛出一个

nil:NilClass 的未定义方法“角色”

而不是重定向用户。

谢谢!- 哈利索

0 投票
1 回答
88 浏览

ruby-on-rails - RoR:CanCanCan 仅授权用户创建的项目

这段代码有什么问题?一个普通用户仍然能够看到所有的关系,而他应该只看到他自己的。

我的查看代码:

我的Ability班级:

0 投票
2 回答
3710 浏览

ruby-on-rails - CanCanCan gem:load_and_authorize_resource 和控制器的索引操作

我的理解是load_and_authorize_resource为 CRUD 操作加载必要的模型实例。这不包括controller#index动作(实例变量是复数 - 在我的情况下@topics)?

除非我在操作中取消注释该行,否则这对我不起作用index

0 投票
1 回答
418 浏览

ruby-on-rails - CanCanCan gem:处理没有登录用户的情况

我正在使用CanCanCan gem (v.12.0) 进行基本授权。我的User模型不使用角色的概念。我要做的就是确保用户在他们可以对我的主模型做任何事情之前登录,Topic.

我相信我已经Ability正确地写了我的课。不出所料, MyTopicsController有一种index方法可以显示用户的所有主题。

问题是,当没有登录用户时,第一个if成功index.html.erb- 这对我来说没有意义。我错过了一些明显的东西吗?

--

--

0 投票
1 回答
1472 浏览

ruby-on-rails - cancancan load_and_authorize_resource NameError

我使用 CanCanCan、Devise 和 Rolify gem 来进行身份验证和权限管理。但是当我创建一个新控制器时,我收到了这条消息:

我的面板控制器:

当我删除此行时:load_and_authorize_resource 路线有效。但我无需身份验证即可访问它。我需要 PanelModel 才能使用它吗?

我的能力模型是这样的:

昨天我的代码运行良好,但今天我不知道为什么会出现此错误。也许任何人都可以帮助我。

我的路线是控制器的: