diff --git a/app/admin/controller/Admin.php b/app/admin/controller/Admin.php index 08bdea3..71f8de5 100644 --- a/app/admin/controller/Admin.php +++ b/app/admin/controller/Admin.php @@ -27,6 +27,7 @@ class Admin extends BaseController if (!empty($param['keywords'])) { $where[] = ['id|username|nickname|desc|mobile', 'like', '%' . $param['keywords'] . '%']; } + $where[] = ['status','>=',0]; $rows = empty($param['limit']) ? get_config(app . page_size) : $param['limit']; $admin = AdminList::where($where) ->order('create_time asc') @@ -212,11 +213,14 @@ class Admin extends BaseController public function delete() { $id = get_params("id"); - if ($id == 1) { - return to_assign(0, "系统拥有者,无法删除"); + if($id == 1){ + return to_assign(1, "超级管理员,不能删除"); } - if (Db::name('Admin')->delete($id) !== false) { - add_log('delete', $id, []); + $data['status'] = '-1'; + $data['id'] = $id; + $data['update_time'] = time(); + if (Db::name('Admin')->update($data) !== false) { + add_log('delete', $id); return to_assign(1, "删除管理员成功"); } else { return to_assign(0, "删除失败"); diff --git a/app/admin/controller/Article.php b/app/admin/controller/Article.php index 116c0b3..407ebc3 100644 --- a/app/admin/controller/Article.php +++ b/app/admin/controller/Article.php @@ -44,15 +44,17 @@ class Article extends BaseController if (request()->isAjax()) { $param = get_params(); if (!empty($param['id']) && $param['id'] > 0) { - try { - validate(ArticleCateCheck::class)->scene('edit')->check($param); - } catch (ValidateException $e) { - // 验证失败 输出错误信息 - return to_assign(0, $e->getError()); - } $data[$param['field']] = $param['value']; $data['id'] = $param['id']; $data['update_time'] = time(); + if(!empty($data['title'])){ + try { + validate(ArticleCateCheck::class)->scene('edit')->check($data); + } catch (ValidateException $e) { + // 验证失败 输出错误信息 + return to_assign(0, $e->getError()); + } + } $res = ArticleCate::strict(false)->field(true)->update($data); if ($res) { add_log('edit', $data['id'], $data); diff --git a/app/admin/controller/Login.php b/app/admin/controller/Login.php index d7e9753..b153eb5 100644 --- a/app/admin/controller/Login.php +++ b/app/admin/controller/Login.php @@ -45,7 +45,7 @@ class Login if ($admin['pwd'] !== $param['pwd']) { return to_assign(0, '用户名或密码错误'); } - if ($admin['status'] == -1) { + if ($admin['status'] == 0) { return to_assign(0, '该用户禁止登录,请于系统所有者联系'); } $data = [ diff --git a/app/admin/controller/Menu.php b/app/admin/controller/Menu.php index 577a243..06c3d91 100644 --- a/app/admin/controller/Menu.php +++ b/app/admin/controller/Menu.php @@ -41,14 +41,16 @@ class Menu extends BaseController if (request()->isAjax()) { $param = get_params(); if ($param['id'] > 0) { - try { - validate(MenuCheck::class)->scene('edit')->check($param); - } catch (ValidateException $e) { - // 验证失败 输出错误信息 - return to_assign(0, $e->getError()); - } $data[$param['field']] = $param['value']; $data['id'] = $param['id']; + if(!empty($data['title'])){ + try { + validate(MenuCheck::class)->scene('edit')->check($data); + } catch (ValidateException $e) { + // 验证失败 输出错误信息 + return to_assign(0, $e->getError()); + } + } Db::name('AdminMenu')->strict(false)->field(true)->update($data); add_log('edit', $param['id'], $data); } else { diff --git a/app/admin/controller/Role.php b/app/admin/controller/Role.php index e2ad112..43d77e7 100644 --- a/app/admin/controller/Role.php +++ b/app/admin/controller/Role.php @@ -65,14 +65,6 @@ class Role extends BaseController if ($param['id'] == 1) { return to_assign(0, '为了系统安全,该管理组不允许修改'); } - /* - if (!empty($param['rules'])) { - $param['rules'] = implode(',', $param['rules']); - } - if (!empty($param['menus'])) { - $param['menus'] = implode(',', $param['menus']); - } - */ Db::name('AdminGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($param); add_log('edit', $param['id'], $param); } else { @@ -82,14 +74,6 @@ class Role extends BaseController // 验证失败 输出错误信息 return to_assign(0, $e->getError()); } - /* - if (!empty($param['rules'])) { - $param['rules'] = implode(',', $param['rules']); - } - if (!empty($param['menus'])) { - $param['menus'] = implode(',', $param['menus']); - } - */ $gid = Db::name('AdminGroup')->strict(false)->field(true)->insertGetId($param); add_log('add', $gid, $param); } diff --git a/app/admin/controller/Rule.php b/app/admin/controller/Rule.php index 552ddcb..8ff366b 100644 --- a/app/admin/controller/Rule.php +++ b/app/admin/controller/Rule.php @@ -39,14 +39,24 @@ class Rule extends BaseController if (request()->isAjax()) { $param = get_params(); if ($param['id'] > 0) { - try { - validate(RuleCheck::class)->scene('edit')->check($param); - } catch (ValidateException $e) { - // 验证失败 输出错误信息 - return to_assign(0, $e->getError()); - } $data[$param['field']] = $param['value']; $data['id'] = $param['id']; + if(!empty($data['title'])){ + try { + validate(RuleCheck::class)->scene('edit_title')->check($data); + } catch (ValidateException $e) { + // 验证失败 输出错误信息 + return to_assign(0, $e->getError()); + } + } + if(!empty($data['src'])){ + try { + validate(RuleCheck::class)->scene('edit_src')->check($data); + } catch (ValidateException $e) { + // 验证失败 输出错误信息 + return to_assign(0, $e->getError()); + } + } Db::name('AdminRule')->strict(false)->field(true)->update($data); add_log('edit', $param['id'], $data); } else { diff --git a/app/admin/validate/AdminCheck.php b/app/admin/validate/AdminCheck.php index fb78abd..556c096 100644 --- a/app/admin/validate/AdminCheck.php +++ b/app/admin/validate/AdminCheck.php @@ -11,11 +11,14 @@ use think\Validate; class AdminCheck extends Validate { + protected $regex = [ 'checkUser' => '/^[A-Za-z]{1}[A-Za-z0-9_-]{4,19}$/']; + protected $rule = [ - 'username' => 'require|unique:admin', - 'pwd' => 'require|confirm', - 'mobile' => 'require', - 'nickname' => 'require', + 'username' => 'require|regex:checkUser|unique:admin', + 'pwd' => 'require|min:6|confirm', + 'edit_pwd' => 'min:6|confirm', + 'mobile' => 'require|mobile', + 'nickname' => 'require|chsAlpha', 'group_id' => 'require', 'id' => 'require', 'status' => 'require|checkStatus:-1,1', @@ -24,23 +27,29 @@ class AdminCheck extends Validate protected $message = [ 'username.require' => '登录账号不能为空', + 'username.regex' => '登录账号必须是以字母开头,只能包含字母数字下划线和减号,5到20位', + 'username.unique' => '同样的登录账号已经存在', 'pwd.require' => '密码不能为空', + 'pwd.min' => '密码至少要6个字符', 'pwd.confirm' => '两次密码不一致', - 'username.unique' => '同样的登录账号已经存在!', + 'edit_pwd.min' => '密码至少要6个字符', + 'edit_pwd.confirm' => '两次密码不一致', 'mobile.require' => '手机不能为空', + 'mobile.mobile' => '手机格式错误', 'nickname.require' => '昵称不能为空', + 'nickname.chsAlpha' => '昵称只能是汉子和字母', 'group_id.require' => '至少要选择一个用户角色', 'id.require' => '缺少更新条件', 'status.require' => '状态为必选', - 'status.checkStatus' => '系统所有者不能被禁用!', + 'status.checkStatus' => '系统所有者不能被禁用', 'old_pwd.require' => '请提供旧密码', 'old_pwd.different' => '新密码不能和旧密码一样', ]; protected $scene = [ - 'add' => ['phone', 'nickname', 'group_id', 'pwd', 'username', 'status'], - 'edit' => ['phone', 'nickname', 'group_id', 'id', 'username.unique', 'status'], - 'editPersonal' => ['phone', 'nickname'], + 'add' => ['mobile', 'nickname', 'group_id', 'pwd', 'username', 'status'], + 'edit' => ['mobile', 'nickname', 'group_id', 'edit_pwd','id', 'username', 'status'], + 'editPersonal' => ['mobile', 'nickname'], 'editpwd' => ['old_pwd', 'pwd'], ]; diff --git a/app/admin/validate/ArticleCateCheck.php b/app/admin/validate/ArticleCateCheck.php index c03f506..92e8a29 100644 --- a/app/admin/validate/ArticleCateCheck.php +++ b/app/admin/validate/ArticleCateCheck.php @@ -13,21 +13,17 @@ class ArticleCateCheck extends Validate { protected $rule = [ 'title' => 'require|unique:article_cate', - 'pid' => 'require', 'id' => 'require', - 'field' => 'require', ]; protected $message = [ 'title.require' => '名称不能为空', - 'pid.require' => '父级分类为必选', - 'title.unique' => '同样的记录已经存在', + 'title.unique' => '同样的名称已经存在', 'id.require' => '缺少更新条件', - 'filed.require' => '缺少要更新的字段名', ]; protected $scene = [ - 'add' => ['title', 'pid'], - 'edit' => ['id', 'field', 'title.unique'], + 'add' => ['title'], + 'edit' => ['id', 'title'], ]; } diff --git a/app/admin/validate/ArticleCheck.php b/app/admin/validate/ArticleCheck.php index 10ec19b..c72538f 100644 --- a/app/admin/validate/ArticleCheck.php +++ b/app/admin/validate/ArticleCheck.php @@ -21,14 +21,14 @@ class ArticleCheck extends Validate protected $message = [ 'title.require' => '标题不能为空', + 'title.unique' => '同样的文章标题已经存在', 'article_cate_id.require' => '所属分类为必选', - 'title.unique' => '同样的记录已经存在!', 'id.require' => '缺少更新条件', 'status.require' => '状态为必选', ]; protected $scene = [ - 'add' => ['title', 'thumb', 'article_cate_id', 'content', 'status'], - 'edit' => ['title', 'thumb', 'article_cate_id', 'content', 'id', 'status'], + 'add' => ['title', 'article_cate_id', 'content', 'status'], + 'edit' => ['title', 'article_cate_id', 'content', 'id', 'status'], ]; } diff --git a/app/admin/validate/ConfCheck.php b/app/admin/validate/ConfCheck.php index e750f4f..0645e17 100644 --- a/app/admin/validate/ConfCheck.php +++ b/app/admin/validate/ConfCheck.php @@ -18,8 +18,8 @@ class ConfCheck extends Validate protected $message = [ 'title.require' => '配置名称不能为空', - 'name.require' => '配置标识不能为空', 'title.unique' => '同样的配置名称已经存在', + 'name.require' => '配置标识不能为空', 'name.unique' => '同样的配置标识已经存在', ]; } diff --git a/app/admin/validate/GroupCheck.php b/app/admin/validate/GroupCheck.php index 5bf5f25..b913c21 100644 --- a/app/admin/validate/GroupCheck.php +++ b/app/admin/validate/GroupCheck.php @@ -19,10 +19,10 @@ class GroupCheck extends Validate protected $message = [ 'title.require' => '名称不能为空', - 'title.unique' => '同样的记录已经存在!', + 'title.unique' => '同样的记录已经存在', 'id.require' => '缺少更新条件', 'status.require' => '状态为必选', - 'status.checkStatus' => '系统所有者组不能被禁用!', + 'status.checkStatus' => '系统所有者组不能被禁用', ]; protected $scene = [ diff --git a/app/admin/validate/KeywordsCheck.php b/app/admin/validate/KeywordsCheck.php index 87769b1..9c1dd2e 100644 --- a/app/admin/validate/KeywordsCheck.php +++ b/app/admin/validate/KeywordsCheck.php @@ -13,13 +13,13 @@ use think\Validate; class KeywordsCheck extends Validate { protected $rule = [ - 'title' => 'require|checkUnique', + 'title' => 'require|unique:keywords', 'id' => 'require', ]; protected $message = [ 'title.require' => '关键字名称不能为空', - 'title.checkUnique' => '同样的关键字名称已经存在', + 'title.unique' => '同样的关键字名称已经存在', 'id.require' => '缺少更新条件', ]; @@ -28,20 +28,4 @@ class KeywordsCheck extends Validate 'edit' => ['id', 'title'], ]; - //自定义验证规则 - protected function checkUnique($value, $rule, $data) - { - if (isset($data['id'])) { - $unique = Db::name('keywords')->where([['id', '<>', $data['id']], ['title', '=', $value], ['status', '>=', 0]])->value('id'); - } else { - $unique = Db::name('keywords')->where([['title', '=', $value], ['status', '>=', 0]])->value('id'); - } - - if ($unique) { - return false; - } else { - return true; - } - } - } diff --git a/app/admin/validate/MenuCheck.php b/app/admin/validate/MenuCheck.php index d889db1..a9a2a23 100644 --- a/app/admin/validate/MenuCheck.php +++ b/app/admin/validate/MenuCheck.php @@ -13,21 +13,17 @@ class MenuCheck extends Validate { protected $rule = [ 'title' => 'require|unique:admin_menu', - 'pid' => 'require', 'id' => 'require', - 'field' => 'require', ]; protected $message = [ 'title.require' => '菜单名称不能为空', - 'pid.require' => '父级菜单为必选', 'title.unique' => '同样的菜单名称已经存在', 'id.require' => '缺少更新条件', - 'filed.require' => '缺少要更新的字段名', ]; protected $scene = [ - 'add' => ['title', 'pid'], - 'edit' => ['id', 'field', 'title.unique'], + 'add' => ['title'], + 'edit' => ['id','title'], ]; } diff --git a/app/admin/validate/NavCheck.php b/app/admin/validate/NavCheck.php index 8345c8c..8ad9492 100644 --- a/app/admin/validate/NavCheck.php +++ b/app/admin/validate/NavCheck.php @@ -21,9 +21,9 @@ class NavCheck extends Validate protected $message = [ 'title.require' => '标题不能为空', + 'title.unique' => '同样的标题已经存在', 'name.require' => '标识不能为空', - 'title.unique' => '同样的记录已经存在!', - 'name.unique' => '同样的记录已经存在!', + 'name.unique' => '同样的标识已经存在', 'id.require' => '缺少更新条件', 'status.require' => '状态为必选', 'slide_id.require' => '缺少导航组ID', diff --git a/app/admin/validate/RuleCheck.php b/app/admin/validate/RuleCheck.php index 4a083cf..d0489ff 100644 --- a/app/admin/validate/RuleCheck.php +++ b/app/admin/validate/RuleCheck.php @@ -14,14 +14,11 @@ class RuleCheck extends Validate protected $rule = [ 'title' => 'require|unique:admin_rule', 'src' => 'unique:admin_rule', - 'pid' => 'require', 'id' => 'require', - 'field' => 'require', ]; protected $message = [ 'title.require' => '节点名称不能为空', - 'pid.require' => '父级节点为必选', 'title.unique' => '同样的节点名称已经存在', 'src.unique' => '同样的节点规则已经存在', 'id.require' => '缺少更新条件', @@ -29,7 +26,8 @@ class RuleCheck extends Validate ]; protected $scene = [ - 'add' => ['title', 'pid', 'src'], - 'edit' => ['id', 'field', 'title.unique', 'src.unique'], + 'add' => ['title','src'], + 'edit_title' => ['id', 'title'], + 'edit_src' => ['id', 'src'], ]; } diff --git a/app/admin/validate/SitemapCateCheck.php b/app/admin/validate/SitemapCateCheck.php index b5d78e1..4246f1b 100644 --- a/app/admin/validate/SitemapCateCheck.php +++ b/app/admin/validate/SitemapCateCheck.php @@ -18,7 +18,7 @@ class SitemapCateCheck extends Validate protected $message = [ 'name.require' => '名称不能为空', - 'name.unique' => '同样的记录已经存在!', + 'name.unique' => '同样的名称已经存在', 'id.require' => '缺少更新条件', ]; diff --git a/app/admin/validate/SlideCheck.php b/app/admin/validate/SlideCheck.php index fea818e..6b694d9 100644 --- a/app/admin/validate/SlideCheck.php +++ b/app/admin/validate/SlideCheck.php @@ -22,9 +22,9 @@ class SlideCheck extends Validate protected $message = [ 'title.require' => '标题不能为空', + 'title.unique' => '同样的标题已经存在', 'name.require' => '标识不能为空', - 'title.unique' => '同样的记录已经存在!', - 'name.unique' => '同样的记录已经存在!', + 'name.unique' => '同样的标识已经存在', 'id.require' => '缺少更新条件', 'status.require' => '状态为必选', 'img.require' => '请上传图片', diff --git a/app/admin/view/admin/add.html b/app/admin/view/admin/add.html index cc31e36..677accb 100644 --- a/app/admin/view/admin/add.html +++ b/app/admin/view/admin/add.html @@ -106,12 +106,12 @@