问题标签 [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 投票
1 回答
871 浏览

ruby-on-rails - 当非用户访问帖子/新时,Pundit rescue_from 不重定向或显示警报消息

我正在尝试向我的 Rails 应用程序添加授权,并希望将非用户重定向到root_url他们尝试访问帖子/新内容时,使用rescue_from. 但是,没有重定向到根目录或显示错误消息,我不知道为什么。

这是我的application_controller.rb

这是application_policy.rb

这是post_policy.rb

这是posts_controller.rb

0 投票
2 回答
770 浏览

ruby-on-rails - 在 Rails 中,定义 Pundit 范围子类以根据用户类型显示不同的帖子集

您好,我是 ruby​​ on rails 的新手,目前正在做一个练习,我有 3 种类型的用户(管理员、版主和成员)。我将 Pundit gem 与 Devise Gem 一起使用。我被要求定义 Pundit 范围类,以根据用户的角色使帖子可访问。

管理员和版主可以查看所有帖子。登录用户只能看到他的帖子。访客看不到帖子。

这是 PostsController:

还有我的帖子政策:

此外,我是否可以在任何地方阅读或了解有关 Pundit 范围策略和 Rails 授权的更多信息?

0 投票
1 回答
911 浏览

ruby-on-rails - Pundit 授权使用 Refile gem 上传的文件

如何使用 Pundit 对通过 Refile gem 上传的文件进行授权?我上传的文件应该仅限于上传它们的用户,但是任何拥有 Refile 的 attachment_url 生成的 url 的人都可以访问该文件。由于 Refile 使用它自己的 Sinatra 应用程序,因此我没有 Rails 控制器可以调用 Pundit 的授权方法。

0 投票
1 回答
1027 浏览

ruby-on-rails - 我如何在 Rails 控制器操作中读取实例变量以了解权威政策

控制器显示动作

权威政策

当我得到零时,我puts @batch_id如何才能在政策行动中获得该价值

0 投票
2 回答
460 浏览

ruby-on-rails - 具有复杂 SQL 语句的 Rails 范围,包括 OR

我现在正在做一个小型的 Rails 项目。我正在使用 Pundit 来授权控制器操作和内容。现在的工作是使用 Pundit 进行索引操作,并policy_scope在我的控制器中使用 Pundit 来获取用户可以看到的项目。

用户可以通过 3 种方式查看项目: - 他是所有者 - 他被邀请 - 项目是公开的

我现在尝试了几种解决方案,但最终做了以下事情:

这是我得到类似“public_or_involved”的唯一方法来处理 project_policy.rb 中的以下权威范围:

所以我的问题,最后:

有没有一种优雅的方式来做我现在正在做的事情? 感觉很丑,不像铁轨!

0 投票
1 回答
438 浏览

ruby-on-rails - 如何为注册用户指定 I18n 语言环境

我正在制作一个使用 globalize 来翻译数据库的应用程序。我需要能够为管理员创建一个 UI,以便他们只能访问特定的语言环境,以便他们可以翻译它们

我正在考虑两种方法来做到这一点。1- 使用 Pundit(见下文),或 2- 管理员登录后,我指定他们的语言环境(不知道如何执行此操作)。我愿意接受其他建议。

建议一

我开始使用 Pundit,因为我认为我可以使用范围来指定区域设置以进行限制。我需要拥有三个级别的角色。超级用户可以涵盖所有语言。“欧洲”用户可以访问欧洲国家的所有语言。特定国家/地区的用户只能为他们的国家/地区翻译。

建议二

(试图弄清楚如何为注册用户指定 I18n)

先感谢您!

0 投票
3 回答
64 浏览

ruby-on-rails-4 - Pundit Usage When Creating/Deleting Objects

I am creating and updating objects, my controller has:

I need to authorize create so I have added authorize @mymodel but surely this should come first? The problem is what parameter do I give authorize?

I could do

but it seems that this is not the way Pundit is supposed to be used inside controllers that have associated policies. What is the correct way to authorize here? Apologies if I missed it in the docs.

0 投票
1 回答
123 浏览

ruby-on-rails - Pundit Policies with Joins

I have churches that use songs.

With a specific song id I am trying to get the most recent usage date and the total of usages limited by whichever church the user belongs to.

The above code seems to be working but I've now started implementing Pundit authorisation and have run into some difficulties. My scope policy is very simple:

The problem is how to actually use it with joins. This doesn't seem right but I'm kind of at a loss:

0 投票
2 回答
1804 浏览

ruby-on-rails - 授权用户在 Rails 中使用 Pundit 编辑特定字段

我在我的 Rails 应用程序中运行 Pundit 以获得授权。我似乎已经掌握了这一切,但想知道如何将编辑或更新操作限制在某个字段。

例如,用户可以编辑他们的 user.first_name、user.mobile 或 user.birthday 等,但不能编辑他们的 user.role。本质上,我的逻辑是,让用户编辑任何装饰性的东西,但如果它是功能性的,则不要编辑。

这些字段应该只能由具有“super_admin”角色的用户编辑(我在 user.rb 上使用如下方法进行了设置)。

我几乎有一个干净的 slateuser_policy.rb文件,其中更新和编辑操作是默认的

也许我对此的想法完全错误,应该包装一个user.super_admin?if 语句围绕用户显示页面上的角色字段,但如果我只是为了安全而使用该策略,这感觉不对。

0 投票
1 回答
663 浏览

ruby-on-rails - $ rails g pundit:install errors 'const_get' : wrong constant name Admin? (名称错误)在尝试生成默认策略库时

ROR 的新手正在学习尝试为我的应用程序生成默认策略文件的教程,使用pundit:install.

$ rails g pundit:install生成以下错误:

我还尝试使用以下命令对权威人士进行 captilizing:, $ rails g Pundit:install但它会产生相同的错误: