问题标签 [pundit]

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 投票
0 回答
494 浏览

ruby-on-rails - Pundit 多重角色索引规范

我有以下规范、策略和控制器。出于某种原因,我的业务用户权限索引规范没有通过,但它在前端有效。我的规格可能是错误的,或者我可能忽略了一些东西。非常感谢您的帮助。

应用政策

** 应用控制器**

** 应用政策规范**

** 更新 **

我在测试错误的东西。将在我的解决方案上发布答案。

0 投票
1 回答
532 浏览

ruby-on-rails - Authlogic 和 Pundit 问题——未填充 Current_user

我的网站存在以下问题。我正在创建一堆可供其他人使用但主要用于前端的 api 调用。我的问题是出于某种原因,似乎 Authlogic 在调用控制器和权威人士之前没有对我的用户进行身份验证。有趣的是,这只会发生在TrackingController其他人身上,而不会发生。

为了让 Authlogic 在标头而不是 url 参数上进行身份验证,我确实需要做一些技巧。这再次在我的工作正常,ShiftsController但不会在我的TrackingController.

我已经能够追查到是缺少user导致CalShiftArchivePolicy错误的对象。如果我注释掉第 5 行,代码将在第 11 行停止并出现错误:

“未定义的方法‘has_roles?’ 对于零:NilClass”

任何帮助都会很棒。

Ruby 版本 2.1.5p273,Rails 版本 4.1.8

在我的控制器中,我有:

权威政策:

结尾

应用控制器:

路由:

0 投票
2 回答
176 浏览

ruby-on-rails - 如何向 Pundit 添加全能用户级别

我查看了文档并进行了一些搜索,但我没有看到全能用户(超级用户)级别的选项,或者如何创建一个选项。

有没有人看到或创造了这样做的原因?我认为可以绑定到核心身份验证系统,但我不确定在哪里进行绑定。

非常感谢..

0 投票
1 回答
4669 浏览

ruby-on-rails - 登录后如何让 Active Admin 与 Pundit 一起工作

我已将配置专家添加器授权添加到我的应用程序

当我使用 admin@example.com 凭据登录时,我收到此错误。

所以我在我的策略/active_admin 文件夹中创建了这些文件

adminuser_policy.rb

结尾

page_policy.rb

我错过了什么?谢谢您的帮助!

0 投票
1 回答
1698 浏览

ruby-on-rails - Rails - Pundit 未定义方法“用户”

我正在尝试实施一项政策,将帖子的创建限制为管理员或企业。反过来,只有创建帖子或管理员的记录所有者(企业)可以编辑。但是我收到一条错误消息,说“未定义的方法用户”有人可以在这里帮忙吗?

架构.rb

用户.rb

Post_controller

Post.show.html.erb

应用程序.策略

0 投票
3 回答
5459 浏览

ruby-on-rails - 具有两个输入参数的 Pundit 策略

我对 Rails 很陌生,并且对以下策略有疑问(使用Pundit):我想比较两个对象:@recordand @foo,如您在此处看到的:

我没有找到将第二个参数传递给权威方法(@foo)的好方法。

我想做类似的事情:

但是 Pundit 授权方法只允许两个参数。有没有办法解决这个问题?

谢谢!

0 投票
2 回答
1010 浏览

ruby-on-rails - 如何拥有一个 Rails 管理员,并且只有 1 个管理员可以编辑和创建新帖子

我正在尝试创建一个简单的页面,任何访问者都可以在其中阅读每周的帖子。我希望只有 1 位管理员可以编辑或创建新帖子。

我将如何去创造这个?

我从设计开始,但理论上任何人都可以转到 new_user_registration 路径并创建一个可以访问编辑和新操作的新用户。在我创建一个帐户之后,我如何能够限制创建任何新帐户?或者理想情况下限制任何非管理员用户可以使用的操作?

我向 Pundit 寻求授权,但对于这样一个简单的任务来说似乎太多了,有没有更简单的方法可以用 Rails 做到这一点?

0 投票
1 回答
554 浏览

devise - 使用单点登录的 Rolify 和acts_as_tenant(旁边有一些设计和权威)——可以吗?

我将尝试在我的 Rails 应用程序中完成这项工作,但我想我会看看是否有人知道会阻止我走上正轨的陷阱。

基本前提是我有以下模型:

  • 公司——acts_as_tenant 中的租户
  • 用户 - 与 Devise 相关联的所有租户共享的唯一电子邮件地址以进行身份​​验证,即单点登录
  • 角色 - 通过 Rolify 然后使用 Pundit 进行授权
  • Model1、Model2 等,每条记录属于一个公司

从我目前所阅读的内容来看,只要我设置正确,我就会隔离我的租户数据,然后用户可以在租户之间切换,他们的权限也会相应地改变。

所以我的具体问题:

acts_as_tenant 只能与 Rolify 一起使用吗?

例如,如果 Tenant1 中的管理员用户向新用户添加角色,该角色是否会自动仅应用于该租户拥有的资源?

0 投票
4 回答
647 浏览

ruby-on-rails - 如何使权威政策更加干燥?

在我的一个项目中,我开始使用 pundit gem,我有一个非常简单的策略,如下所示:

问题是我怎样才能避免重复这一点:

0 投票
1 回答
420 浏览

ruby-on-rails-4 - 如何使用 Pundit 和 Rolify 限制对 Ruby on Rails 4 中模型的访问

在过去的几个月里,我才刚刚开始使用 Rails,并且在我目前的项目中遇到了我的第一个真正的障碍,我一直无法找到答案。

我的目标是对哪些用户角色/组(由 Rolify 生成并由 Pundit 控制)实施一些细粒度的控制,这些用户角色/组可以通过 Upmin 管理控制台访问特定类别、子类别或文章。一个类别/文章应该能够允许多个用户角色/组访问其内容。

此处的答案演示了将角色范围限定为模型的特定实例,这很好,但我也希望通过我的应用程序管理控制台中的简单复选框表单从模型实例中进行控制(感兴趣的人可以使用 Upmin_admin)。

除了在管理控制台中创建一个类别/文章实例视图部分之外,我认为没有太多可以产生此功能是否正确,该视图列出了该特定类别/文章的所有角色/组及其当前 CRUD 设置实例。还是我错过了一些中间步骤?

向正确方向轻推将不胜感激。谢谢!

我的应用程序的一些背景

在我的 Web 应用程序中,我嵌套了资源、类别、文章和评论,如下所示:

(我知道嵌套资源比一层更深并不是最佳实践,但是我刚刚跳上了 Rails 火车, :shallow = true 并没有提供我想要的结果。)

类别充当由 Awesome Nested Set 提供的嵌套集,并且能够“保存”类别和文章(以及扩展评论)。

用户通过使用 Devise 的 LDAP 服务器进行身份验证 - 我将在不久的将来对其进行配置,以自动将用户分配到正确的组/角色。