setForward(); $searchModel = new AdminSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * --------------------------------------- * 添加 * --------------------------------------- */ public function actionAdd() { $model = new Admin(); if (Yii::$app->request->isPost) { /* 表单验证 */ $data = Yii::$app->request->post('Admin'); $data['reg_time'] = time(); $data['reg_ip'] = ip2long(Yii::$app->request->getUserIP()); $data['last_login_time'] = 0; $data['last_login_ip'] = ip2long('127.0.0.1'); $data['update_time'] = 0; /* 表单数据加载和验证,具体验证规则在模型rule中配置 */ /* 密码单独验证,否则setPassword后密码肯定符合rule */ if (empty($data['password']) || strlen($data['password']) < 6) { $this->error('密码为空或小于6字符'); } $model->setAttributes($data); $model->generateAuthKey(); $model->setPassword($data['password']); /* 保存用户数据到数据库 */ if ($model->save()) { $this->success('操作成功', $this->getForward()); } else { $this->error('操作错误'); } } return $this->render('add', [ 'model' => $model, ]); } /** * --------------------------------------- * 用户授权 * --------------------------------------- */ public function actionAuth() { /* 获取用户信息 */ $uid = Yii::$app->request->get('uid'); if (!is_numeric($uid) || !($model = Admin::findOne($uid)) ) { $this->error('操作对象不合法'); } $auth = Yii::$app->authManager; if (Yii::$app->request->isPost) { $data = Yii::$app->request->post(); //更新Fxee权限 try { $ret = FxeeBusiness::updateMemberGroup($uid,isset($data['param_fxee']) ? $data['param_fxee'] : null); } catch (Exception $e) { $ret = $e->getMessage(); } /* 用户权限组 */ $item_name = $data['param']; /* 先删除 用户组-用户 记录 */ $auth->revokeAll($uid); /* 再添加记录 */ $role = $auth->getRole($item_name); $auth->assign($role, $uid); //fxee用户权限操作 if ($ret == true) { $this->success('授权成功!', $this->getForward()); } else if (is_string($ret)) { $this->error($ret); } exit; } $roles = $auth->getRoles(); $group = array_keys($auth->getAssignments($uid)); $one = Admin::findOne(['uid' => $uid]); if (isset($one['bind_uid']) && is_numeric($one['bind_uid'])) { $fxeeRoles = Member::getRoles(); $fxeeGroup = Member::find()->select('group')->where(['id' => $one['bind_uid']])->scalar(); } else { $fxeeRoles = $fxeeGroup = null; } return $this->render('auth', [ 'model' => $model, 'roles' => $roles, 'group' => $group, 'fxee_roles' => $fxeeRoles, 'fxee_group' => $fxeeGroup, ]); } }