温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

web开发中rbac的示例分析

发布时间:2022-03-25 13:53:33 来源:亿速云 阅读:134 作者:小新 栏目:web开发

这篇文章主要为大家展示了“web开发中rbac的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“web开发中rbac的示例分析”这篇文章吧。

  //登陆控制器

  functionactionLogin(){

  $name=Yii::$app->request->post("name");

  $pass=Yii::$app->request->post("pass");

  $res=Yii::$app->db->createCommand("select*fromuserwherename='$name'andpass='$pass'")->queryOne();

  if($res){

  $session=Yii::$app->session;

  $session->set("uid",$res['id']);

  $id=$res['id'];

  $sql=Yii::$app->db->createCommand("SELECT*fromuserjoinu_ton`user`.id=u_t.u_idjointeacheronu_t.t_id=teacher.idJOINt_ponteacher.id=t_p.t_idjoinpoweront_p.p_id=power.idwhere`user`.id=$id")->queryAll();

  $session->set("power",json_encode($sql));

  return$this->redirect(["one/show"]);

  }else{

  echo"<ahref='add'>登陆失败</a>";

  }

  }

  //权限控制器

  functioninit()

  {

  $session=Yii::$app->session;

  $id=$session->get("uid");

  if(empty($id)){

  echo"<ahref='/mon/add'>权限不足</a>";

  }

  $power=$session->get("power");

  $power=json_decode($power);

  foreach($poweras$k=>$v){

  $arr[]=$v->controller.'/'.$v->function;

  }

  $res=Yii::$app->requestedRoute;

  if(!in_array($res,$arr)){

  echo"<ahref='/mon/add'>权限不足</a>";die;

  }

  }

  functionactionShow(){

  $session=Yii::$app->session;

  $data=$session->get("power");

  $arr=json_decode($data,1);

  $res=$this->gettree($arr,0);

  return$this->render("show",["res"=>$res]);

  }

  functiongettree($data,$pid){

  $tree=[];

  foreach($dataas$k=>$v){

  if($v['pid']==$pid){

  $v['son']=$this->gettree($data,$v['id']);

  $tree[]=$v;

  }

  }

  return$tree;

  }

  //权限展示

  <!doctypehtml>

  <htmllang="en">

  <head>

  <metacharset="UTF-8">

  <metaname="viewport"

  content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">

  <metahttp-equiv="X-UA-Compatible"content="ie=edge">

  <title>Document</title>

  </head>

  <body>

  <table>

  <?phpforeach($resas$key=>$value){?>

  <tr>

  <?phpecho$value['power']?><br>

  <?phpforeach($value['son']as$k=>$v){?>

  <ahref="<?phpecho$v['function']?>"><?phpecho$v['power']?><br></a>

  </tr>

  <?php}?>

  <?php}?>

  </table>

  </body>

  </html>

以上是“web开发中rbac的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI