From 46e745b8d1d518ebd58c22275900b9973ac18cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=8A=E5=B9=B3?= <951984189@qq.com> Date: Tue, 2 Mar 2021 18:36:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/app/modules/base/middleware/authority.ts | 11 +++--- src/app/modules/demo/controller/app/goods.ts | 36 ++++++++++++++++++++ src/app/modules/demo/entity/goods.ts | 20 +++++++++++ 4 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 src/app/modules/demo/controller/app/goods.ts create mode 100644 src/app/modules/demo/entity/goods.ts diff --git a/package.json b/package.json index 63982bd..1444b5e 100755 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "ipip-ipdb": "^0.3.0", "jsonwebtoken": "^8.5.1", "md5": "^2.3.0", - "midwayjs-cool-core": "^3.0.3", + "midwayjs-cool-core": "/Users/ap/Documents/srcs/cool-admin/midway-core/core/dist", "mysql2": "^2.2.5", "svg-captcha": "^1.4.0", "svg-to-dataurl": "^1.0.0" diff --git a/src/app/modules/base/middleware/authority.ts b/src/app/modules/base/middleware/authority.ts index c02e64c..dca00b5 100644 --- a/src/app/modules/base/middleware/authority.ts +++ b/src/app/modules/base/middleware/authority.ts @@ -24,22 +24,19 @@ export class BaseAuthorityMiddleware implements IWebMiddleware { const token = ctx.get('Authorization'); let { prefix } = this.coolConfig.router; const adminUrl = prefix ? `${prefix}/admin/` : '/admin/'; - // 只要登录每个人都有权限的接口 - const commUrl = prefix ? `${prefix}/admin/comm/` : '/admin/comm/'; - // 不需要登录的接口 - const openUrl = prefix ? `${prefix}/admin/open/` : '/admin/open/'; // 路由地址为 admin前缀的 需要权限校验 if (_.startsWith(url, adminUrl)) { try { ctx.admin = jwt.verify(token, this.coolConfig.jwt.secret); } catch (err) { } - // comm 不需要登录 无需权限校验 - if (_.startsWith(url, openUrl)) { + // 不需要登录 无需权限校验 + if (new RegExp(`^${adminUrl}?.*/open/`).test(url)) { await next(); return; } if (ctx.admin) { - if (_.startsWith(url, commUrl)) { + // 要登录每个人都有权限的接口 + if (new RegExp(`^${adminUrl}?.*/comm/`).test(url)) { await next(); return; } diff --git a/src/app/modules/demo/controller/app/goods.ts b/src/app/modules/demo/controller/app/goods.ts new file mode 100644 index 0000000..4fedc03 --- /dev/null +++ b/src/app/modules/demo/controller/app/goods.ts @@ -0,0 +1,36 @@ +import { Get, Provide } from '@midwayjs/decorator'; +import { InjectEntityModel } from '@midwayjs/orm'; +import { CoolController, BaseController } from 'midwayjs-cool-core'; +import { DemoAppGoodsEntity } from '../../entity/goods'; +import { Repository } from 'typeorm'; +import { BaseSysMenuEntity } from '../../../base/entity/sys/menu'; + +/** + * 商品 + */ +@Provide() +@CoolController({ + api: ['add', 'delete', 'update', 'info', 'list', 'page'], + entity: DemoAppGoodsEntity +}) +export class DemoAppGoodsController extends BaseController { + + @InjectEntityModel(BaseSysMenuEntity) + baseSysMenuEntity: Repository; + + @Get('/123') + async 123() { + const ms = await this.baseSysMenuEntity.find(); + for (const item of ms) { + if(item.perms){ + let a = item.perms.split(',') + a = a.map(e=>{ + return 'base:'+e; + }) + item.perms = a.join(',') + this.baseSysMenuEntity.update(item.id, item) + } + } + return this.ok(122) + } +} \ No newline at end of file diff --git a/src/app/modules/demo/entity/goods.ts b/src/app/modules/demo/entity/goods.ts new file mode 100644 index 0000000..e72b32c --- /dev/null +++ b/src/app/modules/demo/entity/goods.ts @@ -0,0 +1,20 @@ +import { EntityModel } from '@midwayjs/orm'; +import { BaseEntity } from 'midwayjs-cool-core'; +import { Column } from 'typeorm'; + +/** + * 商品 + */ +@EntityModel('demo_app_goods') +export class DemoAppGoodsEntity extends BaseEntity { + + @Column({ comment: '标题' }) + title: string; + + @Column({ comment: '图片' }) + pic: string; + + @Column({ comment: '价格', type: 'decimal', precision: 5, scale: 2 }) + price: number; + +} \ No newline at end of file