From b0b1127b5bd39e9bc431e9fa9c86201bbc18e891 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Wed, 19 Jul 2023 23:05:04 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=20BaseController=20?= =?UTF-8?q?=E4=B8=AD=E9=83=A8=E5=88=86=E6=9D=83=E9=99=90=E7=A0=81=E7=9A=84?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cnadmin/common/base/BaseController.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java index 08de753c..22c504f9 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java @@ -16,6 +16,8 @@ package top.charles7c.cnadmin.common.base; +import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api; + import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -76,7 +78,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @GetMapping public R> page(@Validated Q query, @Validated PageQuery pageQuery) { - this.checkPermission("list"); + this.checkPermission(Api.LIST); PageDataVO pageDataVO = baseService.page(query, pageQuery); return R.ok(pageDataVO); } @@ -94,7 +96,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @GetMapping("/tree") public R>> tree(@Validated Q query, @Validated SortQuery sortQuery) { - this.checkPermission("list"); + this.checkPermission(Api.LIST); List> list = baseService.tree(query, sortQuery, false); return R.ok(list); } @@ -112,7 +114,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @GetMapping("/list") public R> list(@Validated Q query, @Validated SortQuery sortQuery) { - this.checkPermission("list"); + this.checkPermission(Api.LIST); List list = baseService.list(query, sortQuery); return R.ok(list); } @@ -129,7 +131,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @GetMapping("/{id}") public R get(@PathVariable Long id) { - this.checkPermission("list"); + this.checkPermission(Api.LIST); D detail = baseService.get(id); return R.ok(detail); } @@ -145,7 +147,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @PostMapping public R add(@Validated(BaseRequest.Add.class) @RequestBody C request) { - this.checkPermission("add"); + this.checkPermission(Api.ADD); Long id = baseService.add(request); return R.ok("新增成功", id); } @@ -163,7 +165,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @PutMapping("/{id}") public R update(@Validated(BaseRequest.Update.class) @RequestBody C request, @PathVariable Long id) { - this.checkPermission("update"); + this.checkPermission(Api.UPDATE); baseService.update(request, id); return R.ok("修改成功"); } @@ -180,7 +182,7 @@ public abstract class BaseController, V, D, Q, @ResponseBody @DeleteMapping("/{ids}") public R delete(@PathVariable List ids) { - this.checkPermission("delete"); + this.checkPermission(Api.DELETE); baseService.delete(ids); return R.ok("删除成功"); } @@ -198,20 +200,20 @@ public abstract class BaseController, V, D, Q, @Operation(summary = "导出数据") @GetMapping("/export") public void export(@Validated Q query, @Validated SortQuery sortQuery, HttpServletResponse response) { - this.checkPermission("export"); + this.checkPermission(Api.EXPORT); baseService.export(query, sortQuery, response); } /** - * 权限认证 + * 根据 API 类型进行权限验证 * - * @param subPermission - * 部分权限码 + * @param api + * API 类型 */ - private void checkPermission(String subPermission) { + private void checkPermission(Api api) { CrudRequestMapping crudRequestMapping = this.getClass().getDeclaredAnnotation(CrudRequestMapping.class); String path = crudRequestMapping.value(); String permissionPrefix = String.join(StringConsts.COLON, StrUtil.splitTrim(path, StringConsts.SLASH)); - StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, subPermission)); + StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, api.name().toLowerCase())); } }