我在数据库中有多个客户,每个客户都可以拥有多个管理员,但我希望将这些客户分开,并防止查看彼此的信息。我已将以下代码添加到能力模型中:
if admin_user.has_role? :admin
can [:read, :show, :edit, :update, :new_tester, :create_tester, :delete_tester], Customer, id: admin_user.customer_id
end
在登录控制台时,能力设置正确。 不幸的是,即使我在控制器中添加了load_and_authorize_resource,管理员用户也可以查看其他客户的页面(例如编辑)。这不是预期的行为 - 如果这是一个错误,请你告诉我吗?
这就是我的控制器的样子:
class Admin::CustomersController < Admin::AdminController
load_and_authorize_resource
skip_authorize_resource :only => :increase_click_counter
def edit
...
end
...
end