ManageController.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <?php
  2. namespace backend\controllers;
  3. use backend\models\AdminUser;
  4. use backend\models\AuthArea;
  5. use common\library\ManagePermission;
  6. use common\models\AdminPermission;
  7. use common\models\AdminRole;
  8. use common\models\Area;
  9. use yii;
  10. use yii\filters\AccessControl;
  11. /**
  12. * 管理员管理
  13. * @package backend\controllers
  14. */
  15. class ManageController extends BaseController
  16. {
  17. public $layout = 'iframe';
  18. public static $cont = [
  19. 'aftersales','basicconfig','coupon',
  20. 'demand','dictionary','feekback','manage',
  21. 'market','marki','message','notice','order','process',
  22. 'product','site','user','wallet','webconfig'
  23. ]; //后台控制器列表
  24. public function behaviors()
  25. {
  26. return [
  27. 'access' => [
  28. 'class' => AccessControl::className(),
  29. 'rules' => [
  30. [
  31. 'actions' => [],
  32. 'allow' => true,
  33. 'roles' => ['@'],
  34. ],
  35. ],
  36. ],
  37. ];
  38. }
  39. /**
  40. * 管理用户列表
  41. */
  42. public function actionIndex()
  43. {
  44. $datas = AdminUser::find()->all();
  45. return $this->render('index',['datas'=>$datas]);
  46. }
  47. /**
  48. * 添加管理用户界面
  49. */
  50. public function actionAddmanage()
  51. {
  52. $nodes = Area::find()->where(['type'=>1])->select('area,area_id')->all();
  53. $id = Yii::$app->request->get('id');
  54. $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one();
  55. $auths = Yii::$app->authManager;
  56. $roles = $auths->getRoles();
  57. if(!empty($model)){
  58. $role = $auths->getRolesByUser($id);
  59. $autharea = new AuthArea();
  60. $checkNodel = $autharea->queryCheckbox($model->id);
  61. return $this->render('edit_manage',['model'=>$model,'roles'=>$roles,'role'=>$role,'nodes'=>$nodes,'checkNodel'=>$checkNodel]);
  62. }
  63. return $this->render('add_manage',['roles'=>$roles,'nodes'=>$nodes]);
  64. }
  65. /**
  66. * 检查名字
  67. */
  68. public function actionCheckname()
  69. {
  70. $username = Yii::$app->request->post('username');
  71. $model = AdminUser::find()->where('username=:username',[':username'=>$username])->one();
  72. if(!empty($model)){
  73. return json_encode('该账号已存在');
  74. }
  75. return json_encode('该账号可用');
  76. }
  77. /**
  78. * 添加管理员
  79. */
  80. public function actionAdd_manage()
  81. {
  82. $username = Yii::$app->request->post('username');
  83. $pwd = Yii::$app->request->post('pwd');
  84. $pwd_again = Yii::$app->request->post('pwd_again');
  85. $realname = Yii::$app->request->post('realname');
  86. $admin_role = Yii::$app->request->post('admin_role');
  87. $model =new AdminUser();
  88. $model->created_at = time();
  89. $model->updated_at = time();
  90. $model->status =AdminUser::STATUS_ACTIVE;
  91. $data = AdminUser::find()->where('username=:username',[':username'=>$username])->one();
  92. if(!empty($data)){
  93. Yii::$app->getSession()->setFlash('error', '该号码已经注册!');
  94. return $this->render('add_manage');
  95. }
  96. if(!empty($username)&&!empty($pwd)&&!empty($pwd_again)){
  97. if($pwd==$pwd_again){
  98. $hash_password = Yii::$app->security->generatePasswordHash($pwd);
  99. $model->password_hash = $hash_password;
  100. $model->generateAuthKey();
  101. $model->username = $username;
  102. $model->realname = $realname;
  103. if($model->validate() && $model->save()){
  104. Yii::$app->getSession()->setFlash('success', '添加成功!');
  105. $result = AuthController::userRole($model->id,$admin_role);
  106. $autharea = new AuthArea();
  107. $autharea->settingAuth($model->id,Yii::$app->request->post());
  108. $this->redirect(['manage/index']);
  109. }else{
  110. Yii::$app->getSession()->setFlash('error', '添加失败');
  111. return $this->render('add_manage');
  112. }
  113. }else{
  114. Yii::$app->getSession()->setFlash('error', '确认密码不相同');
  115. return $this->render('add_manage');
  116. }
  117. }else{
  118. Yii::$app->getSession()->setFlash('error', '输入不能为空');
  119. return $this->render('add_manage');
  120. }
  121. }
  122. /**
  123. * 删除管理员
  124. * @return string
  125. */
  126. public function actionDel_manage(){
  127. $result=['sign'=>1,'msg'=>'ok'];
  128. $id = Yii::$app->request->post('id');
  129. $status = Yii::$app->request->post('status');
  130. $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one();
  131. if(!empty($model)){
  132. $model->status = $status;
  133. $model->updated_at = time();
  134. if($model->validate() && $model->save()){
  135. $result=['sign'=>1,'msg'=>'ok'];
  136. }else{
  137. // var_dump($model->getErrors());exit;
  138. $result=['sign'=>0,'msg'=>'error'];
  139. }
  140. }else{
  141. $result=['sign'=>0,'msg'=>'找不到改管理员'];
  142. }
  143. return json_encode($result);
  144. }
  145. /**
  146. * 修改管理员
  147. */
  148. public function actionEdit_manage()
  149. {
  150. //$username = Yii::$app->request->post('username');
  151. $email = Yii::$app->request->post('email');
  152. $realname = Yii::$app->request->post('realname');
  153. $admin_role = Yii::$app->request->post('admin_role');
  154. $id = Yii::$app->request->post('id');
  155. $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one();
  156. if(empty($model)){
  157. Yii::$app->getSession()->setFlash('error', '该id不存在');
  158. return $this->render('edit_manage',['model'=>$model]);
  159. }
  160. $model->email = $email;
  161. $model->updated_at = time();
  162. $model->realname = $realname;
  163. if($model->validate() && $model->save()){
  164. $result = AuthController::userRole($model->id,$admin_role);
  165. $autharea = new AuthArea();
  166. $autharea->settingAuth($model->id,Yii::$app->request->post());
  167. Yii::$app->getSession()->setFlash('success', '修改成功');
  168. $this->redirect(['manage/index']);
  169. }else{
  170. Yii::$app->getSession()->setFlash('error', '修改失败');
  171. return $this->render('edit_manage',['model'=>$model]);
  172. }
  173. }
  174. /**
  175. * 重置管理员密码
  176. * @return string
  177. */
  178. public function actionReset_pwd(){
  179. $result=['sign'=>1,'msg'=>'ok'];
  180. $id = Yii::$app->request->post('id');
  181. $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one();
  182. if(!empty($model)){
  183. $pwd = '123456';
  184. $hash_password = Yii::$app->security->generatePasswordHash($pwd);
  185. $model->password_hash = $hash_password;
  186. $model->updated_at = time();
  187. if($model->validate() && $model->save()){
  188. $result=['sign'=>1,'msg'=>'ok'];
  189. }else{
  190. $result=['sign'=>0,'msg'=>'error'];
  191. }
  192. }else{
  193. $result=['sign'=>0,'msg'=>'找不到改管理员'];
  194. }
  195. return json_encode($result);
  196. }
  197. /**
  198. * 修改密码
  199. */
  200. public function actionEditpwd()
  201. {
  202. $this->layout = 'iframe';
  203. $id = Yii::$app->request->get('id');
  204. $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one();
  205. if(!empty($model)){
  206. return $this->render('editpwd',['model'=>$model]);
  207. }
  208. Yii::$app->getSession()->setFlash('error', '该管理id不存在!');
  209. $this->redirect(['manage/index']);
  210. }
  211. /**
  212. * 修改密码
  213. * @return string
  214. */
  215. public function actionEdit_pwd()
  216. {
  217. $old_pwd = Yii::$app->request->post('old_pwd');
  218. $new_pwd = Yii::$app->request->post('new_pwd');
  219. $pwd_again = Yii::$app->request->post('pwd_again');
  220. $id = Yii::$app->request->post('id');
  221. $userid = Yii::$app->user->id;
  222. $model = AdminUser::find()->where('id=:id',[':id'=>$id])->one();
  223. if($id!=$userid){
  224. Yii::$app->getSession()->setFlash('error', '修改不是本账号密码');
  225. $this->redirect(['manage/index']);
  226. }
  227. if(empty($model)){
  228. Yii::$app->getSession()->setFlash('error', '该id不存在');
  229. $this->redirect(['manage/index']);
  230. }
  231. if(!empty($old_pwd)&&!empty($new_pwd)&&!empty($pwd_again)){
  232. $old_password = $model->password_hash;
  233. if(Yii::$app->getSecurity()->validatePassword($old_pwd, $old_password)){
  234. if($new_pwd==$old_pwd){
  235. Yii::$app->getSession()->setFlash('error', '修改密码和原密码一样');
  236. return $this->render('editpwd',['model'=>$model]);
  237. }else{
  238. if($new_pwd == $pwd_again){
  239. $hash_password = Yii::$app->security->generatePasswordHash($new_pwd);
  240. $model->password_hash = $hash_password;
  241. $model->updated_at = time();
  242. if($model->validate() && $model->save()){
  243. Yii::$app->getSession()->setFlash('success', '修改成功');
  244. $this->redirect(['manage/index']);
  245. }else{
  246. Yii::$app->getSession()->setFlash('error', '修改失败');
  247. return $this->render('editpwd',['model'=>$model]);
  248. }
  249. }else{
  250. Yii::$app->getSession()->setFlash('error', '确认密码错误');
  251. return $this->render('editpwd',['model'=>$model]);
  252. }
  253. }
  254. }else{
  255. Yii::$app->getSession()->setFlash('error', '旧密码错误');
  256. return $this->render('editpwd',['model'=>$model]);
  257. }
  258. }else{
  259. Yii::$app->getSession()->setFlash('error', '输入不能为空');
  260. return $this->render('editpwd',['model'=>$model]);
  261. }
  262. }
  263. }