SysUser.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. declare (strict_types = 1);
  3. /**
  4. * +----------------------------------------------------------------------
  5. * | 后台登录控制制器
  6. * +----------------------------------------------------------------------
  7. */
  8. namespace app\sys\controller;
  9. // 引入框架内置类
  10. use think\facade\View;
  11. use think\facade\Config;
  12. use app\common\model\SysUser as SysUserModel;
  13. use app\common\model\SysRole as SysRoleModel;
  14. class SysUser extends Base
  15. {
  16. protected $modelName = "SysUser";
  17. public function index()
  18. {
  19. $list = SysUserModel::queryList();
  20. View::assign('list', $list);
  21. return View::fetch();
  22. }
  23. // public function info($id = 0)
  24. // {
  25. // if ($id != 0) {
  26. // $data = $this->model->find($id);
  27. // } else {
  28. // $data = ['id'=>0, 'username' => '', 'role_id' => 0, 'truename' => '', 'email' => '', 'note' => ''];
  29. // }
  30. // $dataRole = SysRoleModel::column('name','id');
  31. // return View::fetch('save',[
  32. // 'data' => $data,
  33. // 'dataRole' => $dataRole
  34. // ]);
  35. // }
  36. public function save($id = 0)
  37. {
  38. if ($this->app->request->isPost()) {
  39. $params = $this->app->request->param();
  40. if ($params['username'] =='' || $params['roleid'] =='') {
  41. $this->error("用户名 or 角色 不能为空!");
  42. }
  43. try {
  44. $id = $params['userid'];
  45. unset($params['userid']);
  46. if ($id != 0) {
  47. if (empty($params['password'])) {
  48. unset($params['password']);
  49. } else {
  50. $params['salt'] = generate_stochastic_string();
  51. $params['password'] = md5($params['password'].$params['salt']);
  52. }
  53. SysUserModel::update($params, ['userid' => $id]);
  54. } else {
  55. $params['password'] = empty($params['password']) ? Config::get('app.default_password') : $params['password'];
  56. $params['salt'] = generate_stochastic_string();
  57. $params['password'] = md5($params['password'].$params['salt']);
  58. SysUserModel::create($params);
  59. }
  60. } catch (\Exception $e) {
  61. $msg = $e->getMessage();
  62. $this->error("错误代码:".$msg);
  63. }
  64. $this->success('操作成功', 'sys_user/index');
  65. } else {
  66. if ($id != 0) {
  67. $data = SysUserModel::find($id);
  68. } else {
  69. $data = new SysUserModel();
  70. }
  71. $dataRole = SysRoleModel::column('name','roleid');
  72. View::assign('data', $data);
  73. View::assign('dataRole', $dataRole);
  74. return View::fetch();
  75. }
  76. }
  77. public function isAvailable($id = null, $username = '')
  78. {
  79. if ($this->app->request->isAjax()) {
  80. $data = $this->model->where('username', $username)->find();
  81. if ($data && $data->id != $id) {
  82. return ['code' => 2, 'msg'=>'用户名已存在, 请使用其他用户名'];
  83. } else {
  84. return ['code' => 0, 'msg'=>'用户名可用'];
  85. }
  86. }
  87. }
  88. public function delete($id = null)
  89. {
  90. if ($this->app->request->isAjax()) {
  91. if (is_array($id)) {
  92. if (in_array(session('uid'), $id)) {
  93. return ['code'=>0,'msg'=>'当前登录用户无法删除'];
  94. }
  95. } else {
  96. if ($id == session('uid')) {
  97. return ['code'=>0,'msg'=>'当前登录用户无法删除'];
  98. }
  99. }
  100. if (SysUserModel::destroy($id)) {
  101. return ['code' => 1,'msg'=>'删除成功'];
  102. } else {
  103. return ['code' => 0,'msg'=>'删除失败'];
  104. }
  105. }
  106. }
  107. // 修改密码
  108. public function password()
  109. {
  110. if ($this->app->request->isPOST()) {
  111. $params = $this->app->request->param();
  112. $info = SysUserModel::field('password,salt')->find(session('adminuser.userid'));
  113. if ($info->password != md5($params['oldpassword'].$info->salt)) {
  114. $this->error('原密码不正确');
  115. }
  116. if ($params['newpassword']!=$params['repassword']) {
  117. $this->error('两次新密码不一致,请核查');
  118. }
  119. $info->salt = generate_stochastic_string();
  120. $info->password = md5($params['newpassword'] . $info->salt);
  121. if ($info->save()) {
  122. session(null);
  123. $this->success("修改成功,请重新登陆", 'login/index');
  124. } else {
  125. $this->error('修改失败,请稍后重试');
  126. }
  127. } else {
  128. return View::fetch();
  129. }
  130. }
  131. }