ruby-on-rails - before_filter 带参数验证用户权限

标签 ruby-on-rails

在允许用户编辑员工信息之前,我需要确保他们拥有正确的权限。具体来说,用户必须是管理员,并且用户必须与员工属于同一家公司。执行此类操作的最佳方法是什么?

def EmployeesController < ApplicationController
  before_filter :requires_admin_from_company(cid)

  # Only allow access to this if user.admin is true and user.company_id is equal to employee.company_id
  def update
    # Somehow pass @employee.company_id into admin
    @employee = Employee.find(params[:id])
    @employee.update_attributes(params[:employee])
  end

  def requires_admin_from_company(cid)
    if !@current_user.admin? || @current_user.company_id != cid
      redirect_to login_url
    end
  end
end

最佳答案

怎么样

before_filter lambda{ requires_admin_from_company(params[:cid]) }, :only => :create

关于ruby-on-rails - before_filter 带参数验证用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092597/

相关文章:

ruby-on-rails - 如何在 ActiveAdmin 中添加按钮来为另一个资源创建新记录,并使用当前资源中的值预先填充字段?

ruby-on-rails - OpenURI::HTTPError 403 Forbidden - 打开存储在 S3 上的 Assets 的回形针 url (fog gem)

ruby-on-rails - 在 sidekiq 上配置 redis 身份验证

ruby-on-rails - 从 Rails 4.0 更新到 4.1 会导致 sass-rails railties 版本冲突

ruby-on-rails - 服务器已经在运行

javascript - Rails ajax 渲染部分

sql - rails 和 PSQL : how to convert a column of type STRING to UUID with a fallback value

ruby-on-rails - Rails中非模型字段上的错误

html - 带有粒子 js 的响应式背景图像

ruby-on-rails - 如何在 gem 中扩展 ApplicationController?