@gingkoo/base-server 0.0.2-alpha.8 → 0.0.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app.js +15 -2
- package/backend/common/logger/index.js +11 -0
- package/backend/common/middleware/auth.js +3 -0
- package/backend/common/socket.js +1 -1
- package/backend/common/wechat/services/auth.js +5 -1
- package/backend/config/index.js +11 -1
- package/backend/routers/app.js +3 -0
- package/backend/routers/module.js +6 -5
- package/backend/routers/team/routers/teaminfo.js +3 -3
- package/backend/routers/team/services/teaminfo.js +2 -2
- package/backend/space.js +2 -0
- package/dist/base-assets/css/{index-47564213.css → index-248806df.css} +1 -1
- package/dist/base-assets/css/index-248806df.css.gz +0 -0
- package/dist/base-assets/js/{arc-1da16810.js → arc-580f4549.js} +1 -1
- package/dist/base-assets/js/{blockDiagram-9f4a6865-d34142e3.js → blockDiagram-9f4a6865-98504e3e.js} +1 -1
- package/dist/base-assets/js/blockDiagram-9f4a6865-98504e3e.js.gz +0 -0
- package/dist/base-assets/js/{c4Diagram-ae766693-0941d038.js → c4Diagram-ae766693-2ef668f9.js} +1 -1
- package/dist/base-assets/js/c4Diagram-ae766693-2ef668f9.js.gz +0 -0
- package/dist/base-assets/js/channel-aac1f929.js +1 -0
- package/dist/base-assets/js/{classDiagram-fb54d2a0-896fd5fd.js → classDiagram-fb54d2a0-260d9cd5.js} +1 -1
- package/dist/base-assets/js/{classDiagram-v2-a2b738ad-f294c1f9.js → classDiagram-v2-a2b738ad-c702f0d7.js} +1 -1
- package/dist/base-assets/js/clone-9e03cee5.js +1 -0
- package/dist/base-assets/js/{createText-ca0c5216-84260218.js → createText-ca0c5216-3e380919.js} +1 -1
- package/dist/base-assets/js/{edges-066a5561-441a3b1b.js → edges-066a5561-52c1c420.js} +1 -1
- package/dist/base-assets/js/edges-066a5561-52c1c420.js.gz +0 -0
- package/dist/base-assets/js/{erDiagram-09d1c15f-8b8cb623.js → erDiagram-09d1c15f-696b76a8.js} +1 -1
- package/dist/base-assets/js/erDiagram-09d1c15f-696b76a8.js.gz +0 -0
- package/dist/base-assets/js/{flowDb-c1833063-959d22e0.js → flowDb-c1833063-1debd75b.js} +1 -1
- package/dist/base-assets/js/flowDb-c1833063-1debd75b.js.gz +0 -0
- package/dist/base-assets/js/{flowDiagram-b222e15a-b4569eba.js → flowDiagram-b222e15a-f8dd23e4.js} +1 -1
- package/dist/base-assets/js/flowDiagram-b222e15a-f8dd23e4.js.gz +0 -0
- package/dist/base-assets/js/flowDiagram-v2-13329dc7-312e5053.js +1 -0
- package/dist/base-assets/js/{flowchart-elk-definition-ae0efee6-5692c442.js → flowchart-elk-definition-ae0efee6-c1ce79b0.js} +1 -1
- package/dist/base-assets/js/flowchart-elk-definition-ae0efee6-c1ce79b0.js.gz +0 -0
- package/dist/base-assets/js/{ganttDiagram-b62c793e-f0daa014.js → ganttDiagram-b62c793e-63f67974.js} +1 -1
- package/dist/base-assets/js/ganttDiagram-b62c793e-63f67974.js.gz +0 -0
- package/dist/base-assets/js/{gitGraphDiagram-942e62fe-6995b0f7.js → gitGraphDiagram-942e62fe-a365471d.js} +1 -1
- package/dist/base-assets/js/gitGraphDiagram-942e62fe-a365471d.js.gz +0 -0
- package/dist/base-assets/js/{graph-5e9cb0bf.js → graph-91fe168a.js} +1 -1
- package/dist/base-assets/js/graph-91fe168a.js.gz +0 -0
- package/dist/base-assets/js/{index-01f381cb-235b3df1.js → index-01f381cb-5a29f4cf.js} +1 -1
- package/dist/base-assets/js/index-01f381cb-5a29f4cf.js.gz +0 -0
- package/dist/base-assets/js/{index-22469ce3.js → index-2c13057e.js} +634 -538
- package/dist/base-assets/js/index-2c13057e.js.gz +0 -0
- package/dist/base-assets/js/{infoDiagram-94cd232f-363a19f5.js → infoDiagram-94cd232f-3ceee611.js} +1 -1
- package/dist/base-assets/js/{journeyDiagram-6625b456-f35439d5.js → journeyDiagram-6625b456-a94f512f.js} +1 -1
- package/dist/base-assets/js/journeyDiagram-6625b456-a94f512f.js.gz +0 -0
- package/dist/base-assets/js/{layout-58c37359.js → layout-dd935c55.js} +1 -1
- package/dist/base-assets/js/layout-dd935c55.js.gz +0 -0
- package/dist/base-assets/js/{line-a92e06a8.js → line-ce69d140.js} +1 -1
- package/dist/base-assets/js/{linear-754364ad.js → linear-31cc923f.js} +1 -1
- package/dist/base-assets/js/{mermaid.core-db68a3bc.js → mermaid.core-d3d18aba.js} +3 -3
- package/dist/base-assets/js/mermaid.core-d3d18aba.js.gz +0 -0
- package/dist/base-assets/js/{mindmap-definition-307c710a-39e1948f.js → mindmap-definition-307c710a-1f3ebf4f.js} +1 -1
- package/dist/base-assets/js/{mindmap-definition-307c710a-39e1948f.js.gz → mindmap-definition-307c710a-1f3ebf4f.js.gz} +0 -0
- package/dist/base-assets/js/{pieDiagram-bb1d19e5-2a6bc74a.js → pieDiagram-bb1d19e5-7f7302ce.js} +1 -1
- package/dist/base-assets/js/pieDiagram-bb1d19e5-7f7302ce.js.gz +0 -0
- package/dist/base-assets/js/{quadrantDiagram-c759a472-e87b74d9.js → quadrantDiagram-c759a472-c3e36f61.js} +1 -1
- package/dist/base-assets/js/quadrantDiagram-c759a472-c3e36f61.js.gz +0 -0
- package/dist/base-assets/js/{react-cropper.es-a87ed200.js → react-cropper.es-14f7cf7c.js} +1 -1
- package/dist/base-assets/js/react-cropper.es-14f7cf7c.js.gz +0 -0
- package/dist/base-assets/js/{requirementDiagram-87253d64-78df37e4.js → requirementDiagram-87253d64-11b5e031.js} +1 -1
- package/dist/base-assets/js/requirementDiagram-87253d64-11b5e031.js.gz +0 -0
- package/dist/base-assets/js/{sankeyDiagram-707fac0f-0c00a6e4.js → sankeyDiagram-707fac0f-d693ec63.js} +1 -1
- package/dist/base-assets/js/sankeyDiagram-707fac0f-d693ec63.js.gz +0 -0
- package/dist/base-assets/js/{sequenceDiagram-6894f283-ac570838.js → sequenceDiagram-6894f283-a84b83c2.js} +1 -1
- package/dist/base-assets/js/sequenceDiagram-6894f283-a84b83c2.js.gz +0 -0
- package/dist/base-assets/js/{stateDiagram-5dee940d-bb4e04fe.js → stateDiagram-5dee940d-a2c7e3ae.js} +1 -1
- package/dist/base-assets/js/{stateDiagram-v2-1992cada-fc92dd9a.js → stateDiagram-v2-1992cada-3e66c65d.js} +1 -1
- package/dist/base-assets/js/{styles-0784dbeb-caad128b.js → styles-0784dbeb-c8a209db.js} +1 -1
- package/dist/base-assets/js/styles-0784dbeb-c8a209db.js.gz +0 -0
- package/dist/base-assets/js/{styles-483fbfea-2ab716d7.js → styles-483fbfea-cc1cf6d7.js} +1 -1
- package/dist/base-assets/js/{styles-b83b31c9-f122051a.js → styles-b83b31c9-ec420bae.js} +1 -1
- package/dist/base-assets/js/styles-b83b31c9-ec420bae.js.gz +0 -0
- package/dist/base-assets/js/{svgDrawCommon-5e1cfd1d-e98803c8.js → svgDrawCommon-5e1cfd1d-cf8e620d.js} +1 -1
- package/dist/base-assets/js/{timeline-definition-bf702344-f2492db4.js → timeline-definition-bf702344-4cbcb14a.js} +1 -1
- package/dist/base-assets/js/timeline-definition-bf702344-4cbcb14a.js.gz +0 -0
- package/dist/base-assets/js/{xychartDiagram-f11f50a6-4448de73.js → xychartDiagram-f11f50a6-d1b332af.js} +1 -1
- package/dist/base-assets/js/xychartDiagram-f11f50a6-d1b332af.js.gz +0 -0
- package/dist/index.html +2 -2
- package/package.json +5 -4
- package/static/excel/plantuml.md +125 -0
- package/dist/base-assets/css/index-47564213.css.gz +0 -0
- package/dist/base-assets/js/blockDiagram-9f4a6865-d34142e3.js.gz +0 -0
- package/dist/base-assets/js/c4Diagram-ae766693-0941d038.js.gz +0 -0
- package/dist/base-assets/js/channel-28f23092.js +0 -1
- package/dist/base-assets/js/clone-e591d470.js +0 -1
- package/dist/base-assets/js/edges-066a5561-441a3b1b.js.gz +0 -0
- package/dist/base-assets/js/erDiagram-09d1c15f-8b8cb623.js.gz +0 -0
- package/dist/base-assets/js/flowDb-c1833063-959d22e0.js.gz +0 -0
- package/dist/base-assets/js/flowDiagram-b222e15a-b4569eba.js.gz +0 -0
- package/dist/base-assets/js/flowDiagram-v2-13329dc7-f90f6e8b.js +0 -1
- package/dist/base-assets/js/flowchart-elk-definition-ae0efee6-5692c442.js.gz +0 -0
- package/dist/base-assets/js/ganttDiagram-b62c793e-f0daa014.js.gz +0 -0
- package/dist/base-assets/js/gitGraphDiagram-942e62fe-6995b0f7.js.gz +0 -0
- package/dist/base-assets/js/graph-5e9cb0bf.js.gz +0 -0
- package/dist/base-assets/js/index-01f381cb-235b3df1.js.gz +0 -0
- package/dist/base-assets/js/index-22469ce3.js.gz +0 -0
- package/dist/base-assets/js/journeyDiagram-6625b456-f35439d5.js.gz +0 -0
- package/dist/base-assets/js/layout-58c37359.js.gz +0 -0
- package/dist/base-assets/js/mermaid.core-db68a3bc.js.gz +0 -0
- package/dist/base-assets/js/pieDiagram-bb1d19e5-2a6bc74a.js.gz +0 -0
- package/dist/base-assets/js/quadrantDiagram-c759a472-e87b74d9.js.gz +0 -0
- package/dist/base-assets/js/react-cropper.es-a87ed200.js.gz +0 -0
- package/dist/base-assets/js/requirementDiagram-87253d64-78df37e4.js.gz +0 -0
- package/dist/base-assets/js/sankeyDiagram-707fac0f-0c00a6e4.js.gz +0 -0
- package/dist/base-assets/js/sequenceDiagram-6894f283-ac570838.js.gz +0 -0
- package/dist/base-assets/js/styles-0784dbeb-caad128b.js.gz +0 -0
- package/dist/base-assets/js/styles-b83b31c9-f122051a.js.gz +0 -0
- package/dist/base-assets/js/timeline-definition-bf702344-f2492db4.js.gz +0 -0
- package/dist/base-assets/js/xychartDiagram-f11f50a6-4448de73.js.gz +0 -0
package/app.js
CHANGED
|
@@ -15,9 +15,11 @@ const router = require('./backend/router');
|
|
|
15
15
|
class App {
|
|
16
16
|
/**
|
|
17
17
|
* @param {string} optinos.timeout 超时时间 默认 30s
|
|
18
|
+
* @param {boolean} optinos.closeSocket 是否关闭socket 默认 false 不关闭
|
|
18
19
|
* @param {(app: any, express: any) => void} optinos.middleware 注册中间件
|
|
19
20
|
* @param {(app: any, express: any) => void} optinos.beforeRoutes 在前面注册路由
|
|
20
21
|
* @param {(app: any, express: any) => void} optinos.afterRoutes 在后面注册路由
|
|
22
|
+
* @param {(server: any, app: any, express: any) => void} optinos.expandServer 扩展 server
|
|
21
23
|
*/
|
|
22
24
|
constructor(options = {}) {
|
|
23
25
|
this.options = options;
|
|
@@ -27,10 +29,17 @@ class App {
|
|
|
27
29
|
|
|
28
30
|
this.connectDB();
|
|
29
31
|
this.middleware();
|
|
32
|
+
|
|
33
|
+
if (!options.closeSocket) {
|
|
34
|
+
this.listenSocket();
|
|
35
|
+
}
|
|
36
|
+
|
|
30
37
|
this.routes();
|
|
31
38
|
this.schedule();
|
|
32
39
|
|
|
33
|
-
this.
|
|
40
|
+
if (this.options.expandServer) {
|
|
41
|
+
this.options.expandServer(this.httpServer, this.app, express);
|
|
42
|
+
}
|
|
34
43
|
}
|
|
35
44
|
|
|
36
45
|
// 连接数据库
|
|
@@ -50,7 +59,11 @@ class App {
|
|
|
50
59
|
this.app.use(cors);
|
|
51
60
|
this.app.use(response);
|
|
52
61
|
this.app.use((req, res, next) => {
|
|
53
|
-
|
|
62
|
+
let ignoreCompressionPath = config.ignoreCompressionPath;
|
|
63
|
+
if (
|
|
64
|
+
Array.isArray(ignoreCompressionPath) &&
|
|
65
|
+
ignoreCompressionPath.find((v) => ~req.path.indexOf(v))
|
|
66
|
+
) {
|
|
54
67
|
return next();
|
|
55
68
|
}
|
|
56
69
|
|
|
@@ -23,6 +23,13 @@ const appenders = {
|
|
|
23
23
|
compress: false,
|
|
24
24
|
numBackups: 7,
|
|
25
25
|
},
|
|
26
|
+
userlog: {
|
|
27
|
+
type: 'dateFile',
|
|
28
|
+
filename: path.join(config.app.home, 'logs', 'user.log'),
|
|
29
|
+
pattern: 'yyyy-MM-dd.log',
|
|
30
|
+
compress: false,
|
|
31
|
+
numBackups: 7,
|
|
32
|
+
},
|
|
26
33
|
|
|
27
34
|
infolog: {
|
|
28
35
|
type: 'dateFile',
|
|
@@ -59,6 +66,10 @@ const categories = {
|
|
|
59
66
|
appenders: ['console', 'wslog'],
|
|
60
67
|
level: 'debug',
|
|
61
68
|
},
|
|
69
|
+
userlog: {
|
|
70
|
+
appenders: ['console', 'userlog'],
|
|
71
|
+
level: 'debug',
|
|
72
|
+
},
|
|
62
73
|
|
|
63
74
|
schedulelog: {
|
|
64
75
|
appenders: ['console', 'schedulelog'],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
const jwt = require('../../utils/jwt');
|
|
3
3
|
const config = require('../../config/index');
|
|
4
|
+
const { userlog } = require('../logger');
|
|
4
5
|
const { loginType, getLoginMethod } = require('../services/login');
|
|
5
6
|
|
|
6
7
|
// 后端登录
|
|
@@ -102,8 +103,10 @@ function setTokenCookies(res, token) {
|
|
|
102
103
|
expires.setDate(expires.getDate() + config.jwt.exp);
|
|
103
104
|
|
|
104
105
|
if (config.jwt.domain) {
|
|
106
|
+
userlog.info(`domain: ${config.jwt.domain}`);
|
|
105
107
|
return res.cookie('X-Token', token, { expires, domain: config.jwt.domain });
|
|
106
108
|
} else {
|
|
109
|
+
userlog.info('不用 domain');
|
|
107
110
|
return res.cookie('X-Token', token, { expires });
|
|
108
111
|
}
|
|
109
112
|
}
|
package/backend/common/socket.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var httpclient = require('node-httpclient');
|
|
2
2
|
var util = require('../../../utils/util');
|
|
3
3
|
const jwt = require('../../../utils/jwt');
|
|
4
|
+
const config = require('../../../config/index');
|
|
4
5
|
const { logger } = require('../../logger');
|
|
5
6
|
const userService = require('../../services/user');
|
|
6
7
|
const configService = require('../../services/generalConfig');
|
|
@@ -16,7 +17,10 @@ const ginfoServices = require('../../ginfo/index');
|
|
|
16
17
|
const getRedirectUrl = async (userAgent) => {
|
|
17
18
|
let auth_redirect_url = '';
|
|
18
19
|
let data = await configService.getFromConfig({ GROUP_ID: 'qywx' });
|
|
19
|
-
let { qywx_AgentID, qywx_APPID
|
|
20
|
+
let { qywx_AgentID, qywx_APPID } = data;
|
|
21
|
+
|
|
22
|
+
let qywx_REDIRECT = config.app.qywx_redirect_uri || data.qywx_REDIRECT;
|
|
23
|
+
|
|
20
24
|
// qywx_REDIRECT = http://gingkoo.com/teams
|
|
21
25
|
let redirect_uri = `${qywx_REDIRECT}/wechat/auth/oauth/qywx/callback`;
|
|
22
26
|
|
package/backend/config/index.js
CHANGED
|
@@ -29,6 +29,7 @@ function gConfig() {
|
|
|
29
29
|
app: {
|
|
30
30
|
home: path.resolve('app_home'), // 资源存放的磁盘位置 (绝对路径)
|
|
31
31
|
redirect_uri: '',
|
|
32
|
+
qywx_redirect_uri: '',
|
|
32
33
|
},
|
|
33
34
|
|
|
34
35
|
jwt: {
|
|
@@ -42,7 +43,9 @@ function gConfig() {
|
|
|
42
43
|
},
|
|
43
44
|
|
|
44
45
|
scoket: {
|
|
45
|
-
files:
|
|
46
|
+
files: () => {
|
|
47
|
+
return [];
|
|
48
|
+
},
|
|
46
49
|
config: {},
|
|
47
50
|
},
|
|
48
51
|
|
|
@@ -54,6 +57,13 @@ function gConfig() {
|
|
|
54
57
|
site: {
|
|
55
58
|
title: '',
|
|
56
59
|
},
|
|
60
|
+
ignoreCompressionPath: [],
|
|
61
|
+
|
|
62
|
+
frontend_config: {
|
|
63
|
+
load_type: 'iframe', // iframe | micro app
|
|
64
|
+
home_mode: 'menu', // menu 菜单模式 | page 单页面模式
|
|
65
|
+
home_url: '', // page 模式地址
|
|
66
|
+
},
|
|
57
67
|
},
|
|
58
68
|
serverConfig,
|
|
59
69
|
);
|
package/backend/routers/app.js
CHANGED
|
@@ -3,6 +3,7 @@ var express = require('express');
|
|
|
3
3
|
const nodemailer = require('nodemailer');
|
|
4
4
|
const bcrypt = require('bcryptjs');
|
|
5
5
|
const config = require('../config');
|
|
6
|
+
const { userlog } = require('../../backend/common/logger');
|
|
6
7
|
const jwt = require('../utils/jwt');
|
|
7
8
|
const { checkLogin, setTokenCookies } = require('../common/middleware/auth');
|
|
8
9
|
const { join, readFileContent } = require('../utils/path');
|
|
@@ -43,6 +44,8 @@ router.post('/login', async (req, res) => {
|
|
|
43
44
|
userid: userinfo?.USER_ID,
|
|
44
45
|
});
|
|
45
46
|
|
|
47
|
+
userlog.info(`用户:${userinfo?.USER_ID} 登录成功,token: ${token}`);
|
|
48
|
+
|
|
46
49
|
setTokenCookies(res, token);
|
|
47
50
|
res.sendOk({
|
|
48
51
|
token,
|
|
@@ -46,16 +46,17 @@ router.get('/getMenu', async function (req, res) {
|
|
|
46
46
|
if (!Array.isArray(modules)) {
|
|
47
47
|
return res.sendOk([]);
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
// TODO. 这里用写死成员过滤 teams-system 感觉不合适 先注释掉
|
|
50
|
+
// let member = await servicesServices.getSystemPower();
|
|
50
51
|
|
|
51
|
-
if (!Array.isArray(member)) member = [];
|
|
52
|
+
// if (!Array.isArray(member)) member = [];
|
|
52
53
|
|
|
53
|
-
member = member.filter((v) => v?.userid);
|
|
54
|
+
// member = member.filter((v) => v?.userid);
|
|
54
55
|
// modules = modules.filter((v) => member.includes(userid) || v.MODULE_ID !== 'teams-system');
|
|
55
56
|
|
|
56
57
|
// 先过滤掉权限
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
let permissionModules = await userPermissionModules(userid);
|
|
59
|
+
modules = modules.filter((v) => permissionModules.includes(v.MODULE_ID));
|
|
59
60
|
|
|
60
61
|
let data = await Promise.all(
|
|
61
62
|
modules.map(async (v) => {
|
|
@@ -17,11 +17,11 @@ router.get('/', async function (req, res) {
|
|
|
17
17
|
|
|
18
18
|
router.put('/', async function (req, res) {
|
|
19
19
|
let param = req.body;
|
|
20
|
-
const
|
|
20
|
+
const [error] = await teaminfoService.modifyTeamInfo(param);
|
|
21
21
|
if (error) {
|
|
22
|
-
return res.sendErr(error);
|
|
22
|
+
return res.sendErr(error?.message || '');
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
res.sendOk();
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
module.exports = router;
|
|
@@ -12,8 +12,8 @@ const teaminfoService = {
|
|
|
12
12
|
const { sql, params } = await updateSqlBuilder(entity.IDM_ORGS, param, {
|
|
13
13
|
ORG_ID: global.orgid,
|
|
14
14
|
});
|
|
15
|
-
let
|
|
16
|
-
return
|
|
15
|
+
let { error } = await sqlExecutor(sql, params);
|
|
16
|
+
return [error];
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
|
package/backend/space.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var express = require('express');
|
|
3
3
|
const { checkLogin, authCheck } = require('./common/middleware/auth');
|
|
4
4
|
const { loginType, getLoginMethod } = require('./common/services/login');
|
|
5
|
+
const config = require('./config');
|
|
5
6
|
const automateRouter = require('./routers/automate');
|
|
6
7
|
const app = require('./routers/app');
|
|
7
8
|
const users = require('./routers/user');
|
|
@@ -46,6 +47,7 @@ router.get('/config', async function (req, res) {
|
|
|
46
47
|
res.sendOk({
|
|
47
48
|
loginUrl,
|
|
48
49
|
logo,
|
|
50
|
+
...config.frontend_config,
|
|
49
51
|
});
|
|
50
52
|
});
|
|
51
53
|
|