from('pfg_demo') ->all(); foreach ($data as &$val) { $val['data'] = json_decode($val['data'], true); } p($data); } /* * 角色列表 * */ public function actionRolelist() { return $this->render('rolelist'); } /* * 角色列表数据 * */ public function actionRolelistfrom() { $model = $this->ModelRole(); $rows = $model->getList(Yii::$app->request->post()); if ($rows['data']) { foreach ($rows['data'] as &$val) { $val['create_at'] = date('Y-m-d H:i', $val['create_at']); $val['update_at'] = date('Y-m-d H:i', $val['update_at']); // $val['state'] = Yii::$app->params['state'][$val['state']]; } return Help::JsonData(0, '成功', $rows['count'], $rows['data']); } return Help::JsonData(0, '暂无信息'); } /* * 设置角色状态 * */ public function actionRoledelstate() { $model = $this->ModelRole(); $input = Yii::$app->request->post(); $rows = $model->FindById($input['id']); $rows->state = $input['state']; if ($rows->update()) return Help::JsonCode(Help::SUCCESS, '修改成功'); return Help::JsonCode(Help::ERROR, '修改失败'); } /* * 删除角色 * */ public function actionRoledel() { $model = $this->ModelRole(); $row = $model->FindById(Yii::$app->request->post('id')); if ($row->delete() == true) return Help::JsonCode(Help::SUCCESS, '操作成功'); return Help::JsonCode(Help::ERROR, '操作失败'); } /* * 修改角色界面 * */ public function actionEditrole() { $model = $this->ModelRole(); $row = $model->FindById(Yii::$app->request->get('id')); if ($row != null) { return $this->render('editrole', ['model' => $row]); } } /* * 修改角色数据 * */ public function actionEditrolefrom() { $model = $this->ModelRole(); $row = $model->Check(Yii::$app->request->post('data')); if (is_object($row)) { $find = $row->FindById(Yii::$app->request->post('data')['id']); $find->name = $row->name; $find->describe = $row->describe; $find->state = $row->state; if ($find->update() == true) return Help::JsonCode(Help::SUCCESS, '修改成功'); } return Help::JsonCode(Help::ERROR, '修改失败'); } /* * 添加角色页面 * */ public function actionAddrole() { return $this->render('addrole'); } /* * 接收角色数据 * */ public function actionAddrolefrom() { $model = $this->ModelRole(); $model->scenario = 'add'; $obj = $model->Check(Yii::$app->request->post('data')); if (is_object($obj) && $obj->insert() == true) return Help::JsonCode(200, '添加成功。'); return Help::JsonCode(300, '添加失败', $obj); } /* *角色添加节点页面 * */ public function actionAddrolenode() { $model = $this->ModelNode(); $rows = $model->getList([]); $rn = new \common\models\UserRn(); $rn->rid = Yii::$app->request->get('id'); $rn->type = 1; $roleList = $rn->FindRid(); $nid = array_column($roleList, 'nid'); foreach ($rows['data'] as &$val) { if (in_array($val['id'], $nid)) { $val['checked'] = 'checked'; } } if ($rows != null) return $this->render('addrolenode', ['model' => $rows['data'], 'id' => Yii::$app->request->get('id')]); } /* * 角色添加菜单页面 * */ public function actionAddrolemenu() { // $model = new \common\models\Sysmenu(); // $list = $model->getList([]); // $rn = new \common\models\UserRn(); // $rn->rid = Yii::$app->request->get('id'); // $rn->type = 2; // $roleList = $rn->FindRid(); // $nid = array_column($roleList,'nid'); // foreach ($list['data'] as &$val) // { // if(in_array($val['id'],$nid)) // { // $val['checked'] = 'checked'; // } // } return $this->render('addrolemenu', ['id' => Yii::$app->request->get('id')]); } /* * 查看该角色拥有的菜单权限 * */ public function actionAddrolemenuform() { $rn = new \common\models\UserRn(); $rn->rid = Yii::$app->request->get('id'); $rn->type = 2; $roleList = $rn->FindRid(); $nid = array_column($roleList, 'nid'); //查询已经添加过的菜单 //菜单 $model = new \common\models\Sysmenu(); $list = $model->PidList(); $pid = array_column($list, 'id'); $list_a = $model->PidList($pid); $arrA = []; $list_b = $model->PidList(array_column($list_a, 'id')); $arrB = []; //3级菜单 foreach ($list_b as &$v) { if (in_array($v['id'], $nid)) { $v['checked'] = 'checked'; } $arrB[$v['pid']][] = $v; } //2级菜单 foreach ($list_a as &$value) { if (in_array($value['id'], $nid)) { $value['checked'] = 'checked'; } if (!empty($arrB[$value['id']])) { $value['data'] = $arrB[$value['id']]; } $arrA[$value['pid']][] = $value; } //1级菜单 foreach ($list as $key => $val) { if (in_array($val['id'], $nid)) { $list[$key]['checked'] = 'checked'; } if (!empty($arrA[$val['id']])) { $list[$key]['data'] = $arrA[$val['id']]; } } return Help::JsonCode(Help::SUCCESS, '成功', $list); } /* * 给角色添加节点 and 菜单 节点type = 1 菜单 = 2 * */ public function actionAddroleandnodefrom() { $model = (new \backend\server\RoleAuthority())->CreateRole(); if ($model === true) { return Help::JsonCode(200, '角色权限分配成功'); } return Help::JsonCode(300, '角色分配权限失败', $model); } /* * 节点列表显示 * */ public function actionNodelist() { return $this->render('nodelist'); } /* * 获取节点列表 * */ public function actionNodelistfrom() { $model = $this->ModelNode(); $rows = $model->getList(Yii::$app->request->post()); if ($rows['data'] != null) return Help::JsonData(0, '数据获取成', $rows['count'], $rows['data']); return Help::JsonData(0, '数据获取失败'); } /* * 添加节点页面 * */ public function actionAddnode() { return $this->render('addnode'); } /* * 接收节点数据 * */ public function actionAddnodefrom() { $model = $this->ModelNode(); $obj = $model->Check(Yii::$app->request->post('data')); if (is_array($obj)) return Help::JsonCode(300, '添加失败', $obj); if ($model->MultipleCondition() != null) return Help::JsonCode(300, '该控制器和方法已经存在'); $obj->controller = strtolower($obj->controller); $obj->action = strtolower($obj->action); if (is_object($obj) && $obj->insert() == true) { return Help::JsonCode(200, '添加成功。'); } } /* * 修改节点页面 * */ public function actionEditnode() { $model = $this->ModelNode(); $row = $model->FindById(Yii::$app->request->get('id')); if ($row != null) { return $this->render('editnode', ['model' => $row]); } } /* * 修改节点数据 * */ public function actionEditnodefrom() { $model = $this->ModelNode(); $obj = $model->Check(Yii::$app->request->post('data')); if (is_object($obj)) { $FindObj = $obj->FindById(Yii::$app->request->post('data')['id']); $FindObj->controller = $obj->controller; $FindObj->action = $obj->action; $FindObj->describe = $obj->describe; // $FindObj->attributes = $obj->attributes; if ($FindObj->update() == true) return Help::JsonCode(200, '修改成功'); } return Help::JsonCode(300, '修改失败'); } /* * 删除节点 * */ public function actionDelfrom() { $model = $this->ModelNode(); $FindObj = $model->FindById(Yii::$app->request->post('id')); if ($FindObj != null) { if ($FindObj->delete()) { return Help::JsonCode(200, '删除成功'); } } return Help::JsonCode(300, '删除失败'); } /* * 用户添加角色界面 * */ public function actionUseraddrole() { return $this->render(); } /* * 给用户添加角色 * */ public function actionUseraddrolefrom() { $model = (new \backend\server\RoleAuthority())->CreateUserRole(); if ($model === true) { Help::JsonCode(200, '用户角色分配成功'); } Help::JsonCode(300, '用户角色分配失败'); } /* * 遍历所有控制器 * */ public function actionAllcontroller() { $dir = Yii::$app->basePath; if (is_dir($dir)) { $dirArr = glob($dir . "/controllers/*.php"); if (is_array($dirArr)) { $match = '#class (.*) extends#'; $metch = '#public function action(.*)()#'; $metchs = '@/\*.*?\*/@s'; $model = new \common\models\UserNode(); foreach ($dirArr as $v) { $lines = file_get_contents($v); preg_match($match, $lines, $claaName); $controller = strtolower(substr($claaName[1], 0, strpos($claaName[1], "Controller"))); if ($controller == 'public') { continue; } if ($controller == 'tinifyimg') { continue; } preg_match_all($metch, $lines, $classFunc); preg_match_all($metchs, $lines, $classzhus); //处理头部的注释 if (strstr($classzhus[0][0], 'Created')) { unset($classzhus[0][0]); $classzhus = array_values($classzhus[0]); } $qian = array(" ", " ", "\t", "\n", "\r"); $hou = array("", "", "", "", ""); foreach ($classFunc[1] as $key => $val) { if (strstr($val, '(.*)')) { continue; } $_model = clone $model; $action = strtolower(str_replace('()', '', $val)); $row = $_model::find()->andWhere(['controller' => $controller])->andWhere(['action' => $action])->one(); if ($row == null) { $_model->controller = $controller; $_model->action = str_replace($qian, $hou, $action); if (!empty($classzhus[$key])) { $zhushi = str_replace($qian, $hou, str_replace('/', '', str_replace('*', '', $classzhus[$key]))); if (isset($zhushi[$key])) { $_model->describe = $zhushi[$key]; } // $_model->describe = str_replace($qian,$hou,str_replace('/','',str_replace('*','', $classzhus[$key]))); } $_model->insert(false); } } // return Help::JsonCode(Help::SUCCESS,Yii::t('app','add_success')); } return Help::JsonCode(Help::SUCCESS, Yii::t('app', 'add_success')); } } // $controller = strtolower(substr($claaName[1],0,strpos($claaName[1],"Controller"))); // // $metch = '#public function action(.*)()#'; // $metchs = '@/\*.*?\*/@s'; // preg_match_all($metch, $lines,$classFunc); // preg_match_all($metchs, $lines,$classzhus); // // //处理头部的注释 // if(strstr($classzhus[0][0],'Created')){ // unset($classzhus[0][0]); // $classzhus = array_values($classzhus[0]); // } // //// // $qian=array(" "," ","\t","\n","\r"); // $hou=array("","","","",""); // // $model = new \common\models\UserNode(); // foreach ($classFunc[1] as $key=>$val) // { // if(strstr($val,'(.*)')) // { // continue; // } // $_model = clone $model; // $action = strtolower(str_replace('()','',$val)); // $row = $_model::find()->andWhere(['controller'=>$controller])->andWhere(['action'=>$action])->one(); // if($row == null) // { // $_model->controller = $controller; // $_model->action = str_replace($qian,$hou,$action); // $_model->describe = str_replace($qian,$hou,str_replace('/','',str_replace('*','', $classzhus[$key]))); // $_model->insert(false); // } // // } } protected function ModelRole() { return new UserRole(); } protected function ModelNode() { return new UserNode(); } }