阻止用户更改自己的权限

时间:2018-06-18 06:03:27

标签: php laravel

我为管理员制作了中间件

我在路线中应用了它。

因此,当用户是管理员时,他可以转到用户页面并更改其权限,并且当他点击对其个人资料的更改权限时页面会重定向和中断:

  

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();




    }

那么我如何阻止登录用户更改其权限?

我真的很困惑。 谢谢

1 个答案:

答案 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();

}