123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- <?php
- namespace backend\controllers;
- use backend\models\AdminUser;
- use backend\models\AuthArea;
- use common\library\ManagePermission;
- use common\models\AdminPermission;
- use common\models\AdminRole;
- use common\models\Area;
- use yii;
- use yii\filters\AccessControl;
- /**
- * 管理员管理
- * @package backend\controllers
- */
- class ManageController extends BaseController
- {
- public $layout = 'iframe';
- public static $cont = [
- 'aftersales','basicconfig','coupon',
- 'demand','dictionary','feekback','manage',
- 'market','marki','message','notice','order','process',
- 'product','site','user','wallet','webconfig'
- ]; //后台控制器列表
- public function behaviors()
- {
- return [
- 'access' => [
- '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]);
- }
- }
- }
|