问题标签 [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.
ruby-on-rails - Rails/Pundit ArgumentError
在一个练习中,我试图创建授权,以便用户需要成为帖子的所有者或一般管理员,除了在场并登录以更新帖子。我正在尝试实施权威政策(使用设计进行身份验证)。
PostController 类:
ApplicationPolicy 类:
*用户模型*:
我被参数错误卡住了:wrong number of arguments (2 for 1)
. 我的理解是策略方法是Pundit
模块的一部分,它初始化并返回具有给定记录并current_user
作为隐式用户的新策略对象。有人可以帮我阐明这个问题吗?
错误信息:
显示 /home/vagrant/code/bloccit/app/views/posts/show.html.erb 其中第 3 行提出:
参数数量错误(2 比 1)
完整的错误跟踪:
mysql - Pundit 通过连接表确定模型所有权范围 - Rails 4
我通过一个连接表将用户与给定的公司相关联,因为我需要能够让每个公司都有一堆用户,反之亦然。
我的问题是,当用户点击公司的索引页面时,我如何将其范围限定为仅显示与这些用户相关联的内容?
我是否需要在公司级别创建一个接受@user 的范围?或者我可以直接内联吗?我可以一起破解一些东西,但还没有把我的头绕到专家面前,所以任何方向都将不胜感激!
像这样:
ruby-on-rails-4 - Rolify has_role?在 remove_role 之后返回 true
我想做以下事情
为用户添加角色
删除特定用户的角色
我有一个问题,因为目前
即使在删除后也返回 TRUE。但是,当我执行 User1.roles 时,它会按预期返回一个空数组和 has_any_roles?按预期返回 false。为什么即使在角色被删除后它仍然返回 TRUE?
ruby-on-rails - Rails 4 Devise,Pundit,Join Table ActionView::Template::Error(#<# 的未定义方法`task_definition_path':0x6919b2b2>):
这是我的用例:
- 我有一个使用 Devise for AuthN 的用户模型,我正在使用 Pundit 进行 AuthZ。
- 我通过子域约束限制对主应用程序的访问。
- 我有一些面向最终用户的页面(在某些时候将是不同的 LandF),我有管理页面等。常见的故事你知道演习。
- 我正在使用一个 has_and_belongs_to_many,它使用一个带有 :id 的连接表
- 我将控制器、视图目录和迁移命名为复数形式,将模型命名为单数形式。示例:TaskDefinition => 模型、TaskDefinitions => 控制器和表。
- 生成默认路由,我提供了内容。
- 我在视图目录中使用部分,这是一个非常新的问题,因为从 Ruby 到 JRuby 的端口。
堆栈跟踪:
迁移:
楷模:
控制器:
路线:
看法:
耙路线:
ruby-on-rails - 无法通过 Pundit gem 完成新控制器操作
我有一个 Ruby on Rails 网络应用程序,用户可以在其中创建笔记。笔记属于创建它的用户。
我安装了Pundit gem来创建授权,特别是管理员角色。
我希望用户能够:
- 创建、更新或删除他们的笔记
并且管理员能够对任何用户的笔记做同样的事情。
当我以管理员身份登录时,我可以创建一个新笔记。当我以会员身份登录时,我无法创建新笔记。我立即被重定向到根页面,甚至从未被带到新的笔记页面。
这是我收到的 Flash 错误消息:
在安装 Pundit 之前,成员可以创建新注释。所以我认为这与我的政策有关。
以下是我application_policy.rb
文件中的相关方法:
这是我的note_policy.rb
文件:
以下是我notes_controller.rb
文件中的相关操作:
我试图弄清楚为什么管理员可以创建新笔记,但成员不能。
谢谢你。
ruby-on-rails-4 - 嵌套 Pundit 政策?
假设我有一个属于 User 模型的 Document 模型。A User has_many 文档。DocumentPolicy 可能包括这个...
但是,如果...要编辑文档,您还必须能够编辑该文档的父级(用户)。然后,该策略可能看起来像这样。
这会导致错误:
我很好奇是否有更好的方法来做到这一点。我是否错误地接近它?这似乎是其他人会想到做的事情......所以,我希望能深入了解其他人是如何解决这个问题的。
devise - Devise-Pundit:为Superadmin创建一个页面来创建用户,但实际上并不是创建用户
如何让超级管理员真正创建用户?我需要策略 CreateusersPolicy 吗?我的代码当前将我带到可以创建用户的页面/表单,但它实际上并没有创建用户。
如果我需要包含更多信息,请告诉我!
配置/路由.rb
控制器/application_controller.rb
我也不知道在创建部分放什么。
控制器/users_controller.rb
意见/用户/create.html.erb
应用程序/polices/user_policy.rb
ruby-on-rails - Rails_admin:我应该有 admin_user 还是具有管理员角色的用户来管理用户和管理面板
在我的 Rails 应用程序网站中,访问者可以注册并创建内容。它使用带有用户模型的设计,一切正常。
现在我想使用 rails_admin 来管理网站资源和用户等,并且只有具有管理权限的人才能访问它。
我应该为管理面板访问创建一个单独的 AdminUser 模型还是使用具有管理员角色的用户模型,并使用一些授权库来管理访问。
如果我只使用一个模型,那么如果用户是管理员,我希望用户在登录后被重定向到管理面板,如果不是,那么我希望用户被重定向到他们的个人资料。哪个授权库 cancan 或 pundit 更适合我的情况。
谢谢!
ruby-on-rails - Pundit 的未定义方法“授权”
我已经在我的 Rails 应用程序中安装了 gem Pundit,并仔细按照自述文件中的说明进行操作。
但是,当我在我的任何控制器中使用授权时,我会收到错误消息“未定义的方法 'authorize' for .
此外,当我尝试在视图中使用“策略”时,我收到错误“未定义的方法'策略'”。
就好像根本没有安装 Pundit!
我已将 Pundit 包含在我的应用程序控制器中。
我有一个包含所有策略的 ApplicationPolicy 文件,然后是从应用程序策略继承的每种记录类型的策略文件。
出于某种原因,我无法将任何代码粘贴到这个问题中,所以我希望我已经包含了足够的信息!
我会很感激任何想法。
ruby-on-rails-4 - 权威人士的政策范围有很多通过关系
第一次在这里发帖,所以我希望它是有道理的,但是我在这方面已经旋转了太久了。首先是一点背景。我正在构建一个具有 3 个模型的 Wiki 应用程序:用户、Wiki 和协作(连接表)。
我正在使用 Devise 和 Pundit,并且有 4 类用户应该根据他们的状态查看不同的 wiki 子集。
这是规则:
- 公共用户(未登录)- 只应查看(无编辑)公共 wikis (:hide => false)
- Authenticated User(:role => "standard") - 只能查看、编辑和删除公共 wiki。
- 高级用户 (:role => "premium") - 查看、编辑、删除公共 wiki 以及创建私人 wiki 的能力 (:hide => true) 并将协作者添加到他们的私人 wiki 中,从而赋予他们对该 wiki 的编辑权限。
- 管理员 (:role => "admin") 完全控制所有记录。
因此,我的 Wiki 索引视图在 Policy 范围(检查用户状态)中有一个冗长的 scope.joins 条件,以便根据他们的角色为 current_user 提供一个 wiki 列表的子集。
它不断吐出这个错误:
这是政策
我的模型
维基控制器
我希望你不会被代码淹没,但我想提供尽可能多的信息。
谢谢你的帮助!
哦,这很可能是有问题的代码,但我将其他所有内容都包含在上下文中。