在Rails中,授权用户访问模型的最佳做法是什么?

问题描述 投票:0回答:1

我正在使用Devise进行用户身份验证和基本身份验证。 假设我已经定义了用户和汽车之间的两个相互关联。

  • 用户has_many :cars
  • 汽车belongs_to :user

用户A的车辆ID为1,用户B的车辆ID为2。

阻止用户A访问/cars/2资源的最佳做法是什么? 我可以为每个控制器添加一个before_filter:show,:edit,:update,:destroy,但这看起来很乏味且重复。 有没有办法为此目的使用Devise或CanCan?

ruby-on-rails security devise authorization cancan
1个回答
2
投票

你可以使用CanCan,在这里阅读更多相关信息https://github.com/ryanb/cancan

load_and_authorize_resource添加到控制器的顶部之后

您可以将以下行添加到您的能力模型中,以仅允许车主管理它

可以:manage,Car,:user_id => user.id

© www.soinside.com 2019 - 2024. All rights reserved.