在下面的代码中,我希望授权团队和用户。
- 通过授权团队,我想确保Current_user是团队的管理员
- 第二个授权是确保被删除的用户不是团队的管理员(用户)。
我假设您对Rails Gem Pundit有基本知识。是否有更好的方法可以改进此代码?
def remove_user
team = Team.find(params[:id])
user = User.find(params[:user_id])
authorize team
authorize user
....
end
在策略类中,您编写了添加方法以实现逻辑
eg:
class PostPolicy
-------
other methods and declaration
-------
def initialize(current_user, user)
@current_user = current_user
@user = user
end
def remove_user?
@current_user.admin? and @current_user != @user
end
end