Tag: 授权

如何使用cancancan?

我想在我的rails应用程序中为用户授予权限。 我有’admin’可以创建,更新和删除所有post和评论,’user’可以创建和更新他自己的评论,’guest“谁也可以不做这些。 为此,我使用了gem’设计’和’cancancan’。 我理解’设计’gem,但我不明白’cancancan’。 在class ability.rb中,如何为这些用户(admin,user,guest)写权限?

为需要身份validation的操作设计操作筛选器

我正在使用设计进行身份validation,但是我无法看到和操作filter来指定需要用户登录的操作,这是否包含在设计gem中? 如果不是我怎么能创建一个,我有一个想法,但因为我是铁杆新手,我宁愿首先看一个更有经验的程序员的解决方案。

如何使用cancan来授权一系列资源?

我有一个非宁静的控制器,我正在尝试使用cancan授权! 应用权限的方法。 我有一个像这样开始的delete_multiple动作 def delete_multiple @invoices = apparent_user.invoices.find(params[:invoice_ids]) 我想在继续操作之前检查用户是否有权删除所有这些发票。 如果我使用 authorize! :delete_multiple, @invoices 许可被拒绝。 我的能力.rb包括以下内容 if user.admin? can :manage, :all elsif user.approved_user? can [:read, :update, :destroy, :delete_multiple], Invoice, :user_id => user.id end 这是循环遍历我的数组并单独调用授权还是有更聪明的做事方式? 我开始觉得做授权会比使用cancan用于复杂的非静态控制器更容易手动(尽管我的应用程序中有很多其他的安静控制器,它工作得很好)。

RSpec请求 – 如何为所有请求设置http授权标头

我正在使用rspec请求来测试需要在每个请求的标头中使用api-key的JSON API。 我知道我可以这样做: get “/v1/users/janedoe.json”, {}, { ‘HTTP_AUTHORIZATION’=>”Token token=\”mytoken\”” } 但是为每个请求做这件事都很繁琐。 我已经尝试在before块中设置request.env ,但由于请求不存在,我得到no method NilClass error 。 我需要一些方法,也许在spec-helper ,全局获取与所有请求一起发送的头。

如何在rails app中为我的用户添加角色?

我有一个简单的应用程序与设计的身份validation系统。 我尝试将角色添加到用户模型中。 但没有任何反应。 我所做的是创建了角色模型并将其链接到用户模型: $ rails g model Role name:string $ rails g migration addRoleIdToUser role:references $ rake db:migrate (按照设计维基的指示) 然后在我的模型中: class User < ActiveRecord::Base belongs_to :role end class Role < ActiveRecord::Base has_many :users end 使用我的角色设置seeds.rb: [‘seller’, ‘buyer’, ‘admin’].each do |role| Role.find_or_create_by({name: role}) end 然后 $ rake db:seed 就这样。 我还想知道如何让用户在注册时选择任何这些角色

为什么“范围”导向的行为(特别是“索引”行动)在Pundit中有不同的处理方式?

我写的是关于https://github.com/elabs/pundit#scopes 我的印象是授权应该回答问题您是否允许访问此资源? ,即一个true / false答案。 除了index之外的所有操作都是如此,根据Pundit的文档,这应该根据谁的要求返回不同的ActiveRecord::Relation 。 例如, admin获取scope.all ,而普通用户获取scope.where(:published => true) 。 应用程序/政策/ post_policy.rb class Scope true) end end end 应用程序/控制器/ posts_controller.rb def index @posts = policy_scope(Post) end 我的保留意见是这是一个很滑的斜坡,很快我就会在范围中添加演示文稿(例如scope.all.order(‘created_at ASC’) ) – 而且在授权策略中这样做很奇怪。 当然我可以把它移到控制器…… def index @post = policy_scope(post) if user.admin? @post = @post.order( ‘created_at ASC’ ) end end ……但这是控制器的工作吗? 我不认为向视图添加这样的调用是正确的。 那么也许它应该是一种模型方法? 你会说什么是做以下事情的利弊? 应用程序/控制器/ […]

目前最受欢迎的Ruby on Rails AUTHORIZATION gem / plugin?

目前最流行的Ruby on Rails AUTHORIZATION gem / plugin是哪一款? (我正在使用AuthLogic进行身份validation) 谢谢

设计/ Rails – 如何只允许管理员为其他人创建帐户?

我正在使用设计作为我的身份validation解决方案,现在我正在考虑授权。 在我的项目中,我(管理员)是唯一有权为其他人创建帐户的人。 我想知道是否有办法在没有太多黑客的情况下做到这一点。 实际上,如果Devise已经登录,则Devise不允许用户访问注册页面。 感谢您的建议!

Rails:使用Authlogic授权

我需要一个非常精细的授权系统,可以与Authlogic无缝协作 。 到目前为止,我已尝试过这些gem/插件: 锁定 rails _ authorization _ plugin ACL9 我也看了,但没试过实施: 挂锁 我一直在寻找一个很好的教程,详细说明如何使用Authlogic设置其中任何一个有意义的方法(只有Lockdown doc似乎概述了如何使用Authlogic设置它),但是几乎没有提出。 对我来说最偏向于我的唯一一个是Lockdown的文档,但我不认为这个包对我有效(从我的理解)。 我真正喜欢的是一个很好的教程, 特别是关于使用Authlogic设置其中一个授权解决方案,或者是一个简单的示例应用程序,我可以看到代码如何组合在一起工作。 任何人都可以指出任何好的一步一步(以及为什么)资源,或者提供一个简单的应用程序与Authlogic之上设置的这些授权解决方案之一?

如何使用Devise锁定用户?

我想在我的应用程序中为帐户持有者用户添加订阅类型function,以便在固定的时间间隔后他们将无法访问其帐户? 注意:我不想从数据库中删除他们的帐户。 我已经在我的应用程序中安装了devise-2.1.2 。 有没有人知道怎么办? 我是Ruby on rails新手,所以如果你能解释一下这对我很有帮助。