<?php /** * Created by PhpStorm. * User: 青春已被放纵了 * Date: 2017/1/6 * Time: 16:30 */ namespace App\Http\Controllers; use Route; use Symfony\Component\HttpFoundation\Session\Session; use DB; class CommonController extends Controller{ public function __construct() { $action = \Route::current()->getActionName(); list($class, $action) = explode('@', $action); $controller = substr(strrchr($class,'\\'),1); $controller=substr($controller,0,-10); $session = new Session; $u_id = $session->get("u_id"); // echo $u_id;die; $data=DB::table('u_r') ->leftJoin('r_p', 'u_r.r_id', '=', 'r_p.r_id') ->leftJoin('power', 'power.p_id', '=', 'r_p.p_id') ->where('u_id',$u_id) ->get(); $data=json_decode(json_encode($data),true); $power=$this->recursion($data); // print_r($power);die; foreach($power as $k=>$v){ $arr[]=$v['method']; } if(!in_array($controller."/".$action,$arr)){ echo "<script>alert('没有权限,请前去登录!!!!');location.href='demo/laravel/public/'</script>"; // return redirect("/"); } } public function recursion($data,$path=0,$flag=1){ static $arr=array(); foreach($data as $key=>$val){ if($val['p_path']==$path){ $val['flag']=$flag; $arr[]=$val; $this->recursion($data,$val['p_id'],$flag+1); } } return $arr; } }
laravel 框架中手写rbac
最新推荐文章于 2025-06-03 09:11:58 发布