问题标签 [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.
ruby-on-rails - Rails 4 - CanCanCan - 表达式
我正在尝试使用 CanCanCan 在我的ability.rb 中定义能力。
我不确定这是否是一个有效的表达方式——我在 wiki 中找不到处理这个问题的例子。
我有一个名为 Vision 的模型。Vision 有一个名为 :public 的布尔属性和另一个名为 :public_vision 的属性
如果 :public 是真的,那么我想创造一种阅读 :public 愿景的能力
我试过这个:
这是有效的语法吗?我还不能测试我的能力文件,因为有太多我无法注释掉的红宝石。
ruby-on-rails - Rails 4 & CanCanCan - 语法
我正在尝试使用 CanCanCan 在我的 Rails 4 应用程序中定义能力。
我的能力.rb 文件中有这个能力:
当我尝试在 Time.now 之后删除逗号时,出现此错误:
我不知道如何解读这些错误消息的含义以及它要我做什么。对于第一种格式,我不明白为什么用 => 替换逗号是正确的,因为需要针对该错误评估两个单独的属性。
对于第二个错误,我不明白为什么我会在那一点上“结束”,因为我有一长串需要进入课堂的其他能力。
我想知道这个错误是否与尝试使用 Time.now 参考有关。这不是能力文件中的有效功能吗?如果是这样,是否有其他方法可以查看属性中的日期是否晚于测试能力的日期?
当我尝试将其设置为块时,如下所示:
我收到此错误:
然后我又被卡住了,因为我不知道把 =>
当我尝试删除外部花括号时,该块显示为:
我收到此错误:
所以,只是尝试随机的事情,我试图改变括号:
(所以方括号而不是外层的花括号) - 我不再在那条线上停下来。我真的不明白为什么会这样(并且尚未在种子数据上对其进行测试),但它已经阻止了错误的抛出。
谢谢
ruby-on-rails - 使用 rspec 测试 cancancan 能力
我正在尝试使用 rspec 测试我的康康康舞能力
但与测试特定用户可以做什么相反,我正在尝试测试用户不应该做什么。
现在,我有一个这样的上下文块:
这清楚地表明,类型的用户manager
不应该有任何形式的访问权限Question
模型的任何形式的访问权限。
有没有一种直接的方法可以将整个块写在一个it
块中,只有一个expect
?
我曾想过将其写成如下:
但我认为这可能不一定符合我的意图,因为该测试将通过与未授予该资源的能力之一一样多。
那么,简而言之,有没有直接的方法来测试这种场景呢?谢谢大家。
ruby-on-rails - Rails 4 - cancancan - 定义能力
是否可以通过引用另一个能力来定义 CanCanCan 能力?
例如,我有名为 Project 和 Project Question 的模型。
我想让一类用户阅读项目,然后如果他们可以阅读项目,那么他们就可以创建项目问题。
我已将用户阅读项目的能力定义为:
现在我想定义创建项目问题的能力。我想知道你是否可以这样说:
我也试过:
是否可以通过参考另一种能力来定义一种能力?
PS:这不是我关于 cancancan 的另一个问题的重复,它通过引用数据库中的属性来寻求语法帮助来表达能力。
ruby-on-rails-4 - Cancancan 嵌套资源授权失败并出现 mongoid
我在这里简单解释一下。问题是如何使用 mongoid 授权嵌套资源?假设我有一个Project
模型和一个Project::Task
模型。Project
有很多Project::Task
。我想Project::Task
在控制器级别授权,不想显示另一个Project
人的任务。所以基本上我会在下面处理它:
load_and_authorize_resource :project, class: Project
load_and_authorize_resource :task, through: :project_id, class: Project::Task
但这不起作用。它总是抛出 403。这样做的正确方法是什么?
ruby-on-rails - ActiveAdmin 中针对 batch_action 的 CanCan 功能
假设我想让一些用户阅读、创建和删除(使用 batch_action)他们的帖子,但我不想让他们更新帖子。像这样的东西:
但是当我运行批处理操作时,我看到 cancan 添加了一些尴尬的情况,例如
当我使用 :manage 而不是单独的 crud 操作(:read, :update, :create, :destroy) 时效果很好。
有任何想法吗 ?
ruby-on-rails - Rails - ActiveAdmin & CanCan custom override method for initialize_cancan_ability
I am attempting to pass thru request data to the Ability model as suggested here:
and here:
See: https://github.com/ryanb/cancan/wiki/Accessing-request-data
However, I am using ActiveAdmin with the CancanAdapter, and it uses a separate initialize call via:
See: https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/cancan_adapter.rb
So how/where can I redefine initialize_cancan_ability
so that I can pass in request data similar to the current_ability
example?
Basically I'm hoping to just replace the last line as such:
klass.new user, request
Thanks.
ruby-on-rails - 如何设置cancan gem的权限?
请帮助解决问题。我尝试在安装“cancan”和“cancancan”gem 后设置权限。
架构.rb:
楷模:
应用程序/模型/ability.rb:
我填写了我的角色表以下值:
我填写了我的联接表“roles_users”以下值:
但运行应用程序权限后没有效果。问题是管理员可以更改所有用户的信息。这是不对的。请帮助修复它
ps:
经理通过管理面板更改用户信息后,控制台输出如下:
ruby-on-rails - 如果用户有很多公司,如何为用户添加角色?
在我的应用程序中,用户可能有很多公司,并且可以在公司中对 crud 操作具有不同的权限,现在我使用 cancancan gem,授权如下所示:
用户.rb
角色.rb
用户角色.rb
能力.rb
现在当用户选择另一家公司时,用户可以管理公司模型,但在另一家公司没有权限,如何检测用户的公司ID?