1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /**
- * Created by PhpStorm.
- * User: xiaofeng
- * Date: 2018/3/8
- * Time: 下午2:50
- */
- namespace backend\server;
- use common\models\UserUr;
- use Yii;
- class Checkauthority
- {
- /*
- * 检测操作节点权限
- * */
- public function Comparison($controller,$action)
- {
- $rows = $this->AccessNode();
- if($rows != null)
- {
- $arr = [];
- foreach ($rows as $key => $val)
- {
- $arr[$val['controller']][] = $val['action'];
- }
- }
- if(!empty($arr[$controller]) && in_array($action,$arr[$controller]))
- {
- return true;
- }
- return false;
- }
- /*
- * 检测菜单栏显示和隐藏
- * */
- public function MenuAccess()
- {
- $row = $this->AccessMenu();
- if($row != null)
- {
- return array_column($row,'id');
- }
- }
- /*
- * 判断是否异地登录。
- * */
- public function UniqueToken()
- {
- $cacheName = Yii::$app->cache;
- $ses = Yii::$app->session['user_info'];
- $tokenName = Yii::$app->params['cacheKey']['user_token'].$ses['uid'];
- if($ses['token'] == $cacheName->get($tokenName) )
- {
- return true;
- }
- return false;
- }
- private function AccessNode()
- {
- return $this->QueryCommon(['pfg_user_node.controller','pfg_user_node.action'],1)
- ->leftJoin('pfg_user_node','pfg_user_rn.nid = pfg_user_node.id')
- ->asArray()->all();
- }
- private function AccessMenu()
- {
- return $this->QueryCommon(['pfg_sysmenu.id','pfg_sysmenu.name'],2)
- ->leftJoin('pfg_sysmenu','pfg_user_rn.nid = pfg_sysmenu.id')
- ->orderBy(['pfg_sysmenu.sort'=>SORT_DESC])
- ->asArray()
- ->all();
- }
- private function QueryCommon($select,$type)
- {
- $query = UserUr::find()->andWhere(['uid'=>Yii::$app->session['user_info']['uid']]);
- $query->select = $select;
- $query = $this->WhereFilter($query,$type);
- return $query;
- }
- public function WhereFilter($query,$type)
- {
- $query->leftJoin('pfg_user_role','pfg_user_ur.rid = pfg_user_role.id and pfg_user_role.state = 1');
- $query->leftJoin('pfg_user_rn','pfg_user_role.id = pfg_user_rn.rid and type = '.$type);
- return $query;
- }
- }
|