【问题标题】:Rails cancancan user sees own order, admin can see all users ordersRails cancancan 用户查看自己的订单,admin 可以查看所有用户的订单
【发布时间】:2021-08-01 07:33:21
【问题描述】:

controller.rb

load_and_authorize_resource

  # GET /orders or /orders.json
  def index
    if params[:user_id]
      @orders = current_user.orders
    else
      @orders = Order.all
    end
  end

能力.rb

    if user.user_role?

      can :manage, Order, :user_id => user.id

    end

试图让普通用户只能看到自己的订单/帖子,而管理员角色用户可以看到所有用户的帖子/订单。

我错过了什么?我正在使用 cancancan 并进行设计。

【问题讨论】:

  • 您有admin 角色吗?在这种情况下,我认为您只需要检查角色
  • @LamPhan 是的,我有管理员角色。我的普通用户仍然可以看到所有帖子/订单,而不仅仅是自己用户的帖子/订单

标签: ruby-on-rails devise cancancan


【解决方案1】:

我想通了:

  def index
    if current_user.superadmin_role?
      @orders = Order.all
    else
      @orders = current_user.orders
    end
  end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2021-06-05
    • 2021-05-14
    • 2021-07-16
    • 2021-03-23
    • 2013-06-17
    • 2020-10-30
    相关资源
    最近更新 更多