[ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => [], 'allow' => true, 'roles' => ['@'], ], ], ], ]; } /** * 管理用户列表 */ public function actionIndex() { $datas = AdminUser::find()->all(); return $this->render('index',['datas'=>$datas]); } /** * 添加管理用户界面 */ public function actionAddmanage() { $nodes = Area::find()->where(['type'=>1])->select('area,area_id')->all(); $id = Yii::$app->request->get('id'); $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one(); $auths = Yii::$app->authManager; $roles = $auths->getRoles(); if(!empty($model)){ $role = $auths->getRolesByUser($id); $autharea = new AuthArea(); $checkNodel = $autharea->queryCheckbox($model->id); return $this->render('edit_manage',['model'=>$model,'roles'=>$roles,'role'=>$role,'nodes'=>$nodes,'checkNodel'=>$checkNodel]); } return $this->render('add_manage',['roles'=>$roles,'nodes'=>$nodes]); } /** * 检查名字 */ public function actionCheckname() { $username = Yii::$app->request->post('username'); $model = AdminUser::find()->where('username=:username',[':username'=>$username])->one(); if(!empty($model)){ return json_encode('该账号已存在'); } return json_encode('该账号可用'); } /** * 添加管理员 */ public function actionAdd_manage() { $username = Yii::$app->request->post('username'); $pwd = Yii::$app->request->post('pwd'); $pwd_again = Yii::$app->request->post('pwd_again'); $realname = Yii::$app->request->post('realname'); $admin_role = Yii::$app->request->post('admin_role'); $model =new AdminUser(); $model->created_at = time(); $model->updated_at = time(); $model->status =AdminUser::STATUS_ACTIVE; $data = AdminUser::find()->where('username=:username',[':username'=>$username])->one(); if(!empty($data)){ Yii::$app->getSession()->setFlash('error', '该号码已经注册!'); return $this->render('add_manage'); } if(!empty($username)&&!empty($pwd)&&!empty($pwd_again)){ if($pwd==$pwd_again){ $hash_password = Yii::$app->security->generatePasswordHash($pwd); $model->password_hash = $hash_password; $model->generateAuthKey(); $model->username = $username; $model->realname = $realname; if($model->validate() && $model->save()){ Yii::$app->getSession()->setFlash('success', '添加成功!'); $result = AuthController::userRole($model->id,$admin_role); $autharea = new AuthArea(); $autharea->settingAuth($model->id,Yii::$app->request->post()); $this->redirect(['manage/index']); }else{ Yii::$app->getSession()->setFlash('error', '添加失败'); return $this->render('add_manage'); } }else{ Yii::$app->getSession()->setFlash('error', '确认密码不相同'); return $this->render('add_manage'); } }else{ Yii::$app->getSession()->setFlash('error', '输入不能为空'); return $this->render('add_manage'); } } /** * 删除管理员 * @return string */ public function actionDel_manage(){ $result=['sign'=>1,'msg'=>'ok']; $id = Yii::$app->request->post('id'); $status = Yii::$app->request->post('status'); $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one(); if(!empty($model)){ $model->status = $status; $model->updated_at = time(); if($model->validate() && $model->save()){ $result=['sign'=>1,'msg'=>'ok']; }else{ // var_dump($model->getErrors());exit; $result=['sign'=>0,'msg'=>'error']; } }else{ $result=['sign'=>0,'msg'=>'找不到改管理员']; } return json_encode($result); } /** * 修改管理员 */ public function actionEdit_manage() { //$username = Yii::$app->request->post('username'); $email = Yii::$app->request->post('email'); $realname = Yii::$app->request->post('realname'); $admin_role = Yii::$app->request->post('admin_role'); $id = Yii::$app->request->post('id'); $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one(); if(empty($model)){ Yii::$app->getSession()->setFlash('error', '该id不存在'); return $this->render('edit_manage',['model'=>$model]); } $model->email = $email; $model->updated_at = time(); $model->realname = $realname; if($model->validate() && $model->save()){ $result = AuthController::userRole($model->id,$admin_role); $autharea = new AuthArea(); $autharea->settingAuth($model->id,Yii::$app->request->post()); Yii::$app->getSession()->setFlash('success', '修改成功'); $this->redirect(['manage/index']); }else{ Yii::$app->getSession()->setFlash('error', '修改失败'); return $this->render('edit_manage',['model'=>$model]); } } /** * 重置管理员密码 * @return string */ public function actionReset_pwd(){ $result=['sign'=>1,'msg'=>'ok']; $id = Yii::$app->request->post('id'); $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one(); if(!empty($model)){ $pwd = '123456'; $hash_password = Yii::$app->security->generatePasswordHash($pwd); $model->password_hash = $hash_password; $model->updated_at = time(); if($model->validate() && $model->save()){ $result=['sign'=>1,'msg'=>'ok']; }else{ $result=['sign'=>0,'msg'=>'error']; } }else{ $result=['sign'=>0,'msg'=>'找不到改管理员']; } return json_encode($result); } /** * 修改密码 */ public function actionEditpwd() { $this->layout = 'iframe'; $id = Yii::$app->request->get('id'); $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one(); if(!empty($model)){ return $this->render('editpwd',['model'=>$model]); } Yii::$app->getSession()->setFlash('error', '该管理id不存在!'); $this->redirect(['manage/index']); } /** * 修改密码 * @return string */ public function actionEdit_pwd() { $old_pwd = Yii::$app->request->post('old_pwd'); $new_pwd = Yii::$app->request->post('new_pwd'); $pwd_again = Yii::$app->request->post('pwd_again'); $id = Yii::$app->request->post('id'); $userid = Yii::$app->user->id; $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one(); if($id!=$userid){ Yii::$app->getSession()->setFlash('error', '修改不是本账号密码'); $this->redirect(['manage/index']); } if(empty($model)){ Yii::$app->getSession()->setFlash('error', '该id不存在'); $this->redirect(['manage/index']); } if(!empty($old_pwd)&&!empty($new_pwd)&&!empty($pwd_again)){ $old_password = $model->password_hash; if(Yii::$app->getSecurity()->validatePassword($old_pwd, $old_password)){ if($new_pwd==$old_pwd){ Yii::$app->getSession()->setFlash('error', '修改密码和原密码一样'); return $this->render('editpwd',['model'=>$model]); }else{ if($new_pwd == $pwd_again){ $hash_password = Yii::$app->security->generatePasswordHash($new_pwd); $model->password_hash = $hash_password; $model->updated_at = time(); if($model->validate() && $model->save()){ Yii::$app->getSession()->setFlash('success', '修改成功'); $this->redirect(['manage/index']); }else{ Yii::$app->getSession()->setFlash('error', '修改失败'); return $this->render('editpwd',['model'=>$model]); } }else{ Yii::$app->getSession()->setFlash('error', '确认密码错误'); return $this->render('editpwd',['model'=>$model]); } } }else{ Yii::$app->getSession()->setFlash('error', '旧密码错误'); return $this->render('editpwd',['model'=>$model]); } }else{ Yii::$app->getSession()->setFlash('error', '输入不能为空'); return $this->render('editpwd',['model'=>$model]); } } }