SysUser.php 4.8 KB

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