Tag: 授权

Authlogic:为#<User获取一个未定义的方法`password':

即使我在模型中添加了“acts_as_authentic”,我也无法在Authlogic中获取用户模型来理解“密码”方法。 在Authlogic灯塔上也报道了这个问题,但是没有人描述他们如何修复它: http://binarylogic.lighthouseapp.com/projects/18752/tickets/128-undefined-method-password-on-rails-231#ticket-128-9 用户表存在所有必需的字段,控制器和其他所有内容肯定遵循教程中的字母。 谁知道什么可能是错的? (哦,我正在运行Rails 2.3.3,Authlogic 2.1.1)

Rails:仅限管理员维护模式

我想将我的应用程序置于维护模式,但仍然可以让管理员/版主登录并使用该网站。 两个原因: 我在应用程序中进行了一些更改,这些更改最适合使用应用程序内界面而不是控制台。 版主无法访问控制台,但绝对有助于我们面前的维护任务。 你会怎么推荐这样做? 我一直在尝试设置一个环境变量ADMIN_MODE并在它为真时更改所有权限,但这看起来很匆匆而且很慢。 我正在使用CanCan和Devise,这是值得的,但我绝对乐于接受任何建议。 谢谢!

用户可以“阅读”的范围记录的常用方法是什么?

我正在使用Ruby on Rails 3.2.2并且我想知道当必须检查用户是否具有“读取”记录“列表”中存在的记录的适当授权时,什么是常用方法。 也就是说,此时我有以下内容: class Article < ActiveRecord::Base def readable_by_user?(user) # Implementation of multiple authorization checks that are not easy to # translate into an SQL query (at database level, it executes a bunch of # "separate" / "different" SQL queries). … # return 'true' or 'false' end end 通过使用上面的代码,我可以对单个文章对象执行授权检查: @article.readable_by_user?(@current_user) 但是,当我想通过检索恰好10个对象来制作(通常在我的控制器index操作中)类似下面的内容 Article.readable_by_user(@current_user).search(…).paginate(…, :per_page […]

rails从片段缓存中遗漏了一些部分

我有一个使用pundit gem进行授权的rails 4 app。 如果我像下面的代码那样执行俄语 – 娃娃片段缓存,则用于授权的条件语句也将被缓存,这是不好的,因为编辑/删除按钮应仅适用于post.user 。 解决这个问题的好方法是什么? 我应该将缓存拆分成更小的部分,还是有办法排除缓存的某些部分? 在这种情况下,轨道惯例是什么? index.html.erb _post.html.erb “modal”, ‘data-target’ => “#updatepost_#{post.id}” %> <a href="#" data-toggle="modal" role="button" data-target="#deletepost_”>Delete Post <div class="col-md-12 post-comment-insert-“> <div class="modal fade updatepost" id="updatepost_” tabindex=”-1″ role=”dialog” aria-labelledby=”myModalLabel”> <div class="modal fade" id="deletepost_” tabindex=”-1″ role=”dialog” aria-labelledby=”myModalLabel”> ……

Railscast从头开始授权用户

所以这是我根据Railscast#386编写的授权代码。 问题是该块适用于除user_controller之外的所有控制器。 换句话说,任何用户都可以对任何其他用户进行triger edit和update操作,即使给予它的块与有利于edit和update操作的块相同。 def initialize(user) allow :users, [:new, :create, :show] allow :sessions, [:new, :create, :destroy] allow :favors, [:index, :show] if user allow :users, [:edit, :update] do |usr| usr.id == user.id end allow :favors, [:new, :create] allow :favors, [:edit, :update] do |favor| favor.user_id == user.id end allow :acceptances, [:create, :update] do |acceptance| !acceptance.has_accepted_acceptance? end end […]

Ruby on Rails Authlogic密码无效

我正在尝试实现Authlogic。 注册很好,它将所有必要的细节输入我的数据库.. ..但是当我尝试登录时,它给了我错误: 1错误禁止保存此用户会话 以下字段存在问题: 密码无效 我的密码有效。 我不确定发生了什么。 有任何想法吗?

rails:过滤前放入和中断

我想要一个像“must_have_permission_to_write”之类的filter,如果用户没有写入权限,则在调用时会显示一条消息“你不能这样做!” 并返回。 问题是我得到“每个动作只能呈现或重定向一次”当然……我如何在filter中停止执行? 谢谢

Rails基于对象的权限/授权引擎?

我想在我的应用中添加“共享文档”function,就像在谷歌文档服务中一样。 正如我所见: 用户可以: 可以列出/查看/创建/编辑/删除自己的文档 向所有人分享自己的文件 – 它是一份公共文件 将自己的文档共享给具有只读访问权限的其他用户 将自己的文档共享给具有读写访问权限的其他用户 查看他允许读写的自己的文档和用户列表 查看外国文件清单 查看/编辑具有读/写权限的外部文档 请告诉我,为我的任务提供哪些权限/授权解决方案?

Rails cancan和State Machine – 授权状态

我最近在我的rails应用程序中使用了两个很棒的gem,state_machine和cancan,但我很好奇将它们干净地集成在一起的最佳方式。 目前,我已将状态转换置于按钮上,这些按钮将继续执行控制器授权的操作。 这很有效,我可以限制谁可以执行该操作。 我想让用户也能够在编辑表单中更改对象状态。 我注意到state_machine将获取散列中的state_event键,其中包含要执行的操作的值(因此它将遍历所有state_machines回调)。 这可以使用update_attributes中的params哈希传递。 太棒了。 但是,只有某些用户应该能够将对象更改为某些状态。 我该如何实现呢? 这个想法就是这样 params[‘state_event’]==’move_to_x’ 应该为一些用户纾困,但允许其他用户。 它也让我担心,直到我实现这是授权部分,一个聪明的用户可以在状态事件中发布任何内容,即使它们也不应该被允许!

与Authlogic一起使用的一些好的角色授权解决方案是什么?

我正在寻找一个好的基于角色的授权解决方案,与Authlogic一起使用。 有人有什么好建议吗? 请尽可能列出您的经验中的一些优缺点。