我为管理员制作了中间件
我在路线中应用了它。
因此,当用户是管理员时,他可以转到用户页面并更改其权限,并且当他点击对其个人资料的更改权限时页面会重定向和中断:
ERR_TOO_MANY_REDIRECTS
我将用户更改为管理员的方法:
public function admin($id){
$user = User::findOrFail($id);
$user->admin = 1;
$user->save();
session()->flash('success','Changed to admin');
return redirect()->back();
}
并将用户更改为作者:
public function notAdmin($id){
$user = User::findOrFail($id);
$user->admin = 0;
$user->save();
session()->flash('success','Changed to Normal');
return redirect()->back();
}
那么我如何阻止登录用户更改其权限?
我真的很困惑。 谢谢
答案 0 :(得分:0)
如果用户尝试使用更改自己的权限,请重定向用户 Auth-> id()并与$ id比较,这样如果这些东西匹配,那么他就试图改变自己的权限。 公共职能管理员($ id){
if(Auth->id() == $id) {
session()->flash('error','Permission denied');
return redirect()->back();
}
$user = User::findOrFail($id);
$user->admin = 1;
$user->save();
session()->flash('success','Changed to admin');
return redirect()->back();
}