@gingkoo/base-server 0.0.2-alpha.9 → 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/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-abc997fd.js → arc-580f4549.js} +1 -1
- package/dist/base-assets/js/{blockDiagram-9f4a6865-08410c26.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-074bc318.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-7ce78396.js → classDiagram-fb54d2a0-260d9cd5.js} +1 -1
- package/dist/base-assets/js/{classDiagram-v2-a2b738ad-7570c90d.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-933a319c.js → createText-ca0c5216-3e380919.js} +1 -1
- package/dist/base-assets/js/{edges-066a5561-3e450dad.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-5aa33fc3.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-dd679e7a.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-cff1e343.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-e1560b86.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-4e64bd93.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-68f171cb.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-2f2b1d0f.js → graph-91fe168a.js} +1 -1
- package/dist/base-assets/js/graph-91fe168a.js.gz +0 -0
- package/dist/base-assets/js/{index-01f381cb-a30abf08.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-fa41a7b5.js → index-2c13057e.js} +631 -535
- package/dist/base-assets/js/index-2c13057e.js.gz +0 -0
- package/dist/base-assets/js/{infoDiagram-94cd232f-cbf2e983.js → infoDiagram-94cd232f-3ceee611.js} +1 -1
- package/dist/base-assets/js/{journeyDiagram-6625b456-df75da86.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-29f03de2.js → layout-dd935c55.js} +1 -1
- package/dist/base-assets/js/layout-dd935c55.js.gz +0 -0
- package/dist/base-assets/js/{line-faad1751.js → line-ce69d140.js} +1 -1
- package/dist/base-assets/js/{linear-0c60c331.js → linear-31cc923f.js} +1 -1
- package/dist/base-assets/js/{mermaid.core-eb338566.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-e157c00e.js → mindmap-definition-307c710a-1f3ebf4f.js} +1 -1
- package/dist/base-assets/js/mindmap-definition-307c710a-1f3ebf4f.js.gz +0 -0
- package/dist/base-assets/js/{pieDiagram-bb1d19e5-1666075a.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-bce4c9b7.js → quadrantDiagram-c759a472-c3e36f61.js} +1 -1
- package/dist/base-assets/js/{quadrantDiagram-c759a472-bce4c9b7.js.gz → quadrantDiagram-c759a472-c3e36f61.js.gz} +0 -0
- package/dist/base-assets/js/{react-cropper.es-825672c6.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-a41d6314.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-b039474b.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-4048704a.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-83ee72c0.js → stateDiagram-5dee940d-a2c7e3ae.js} +1 -1
- package/dist/base-assets/js/{stateDiagram-v2-1992cada-37635e07.js → stateDiagram-v2-1992cada-3e66c65d.js} +1 -1
- package/dist/base-assets/js/{styles-0784dbeb-c0806fe9.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-7e8c469a.js → styles-483fbfea-cc1cf6d7.js} +1 -1
- package/dist/base-assets/js/{styles-b83b31c9-34688bd8.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-c57cf66f.js → svgDrawCommon-5e1cfd1d-cf8e620d.js} +1 -1
- package/dist/base-assets/js/{timeline-definition-bf702344-c27bf0cf.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-35c35675.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-08410c26.js.gz +0 -0
- package/dist/base-assets/js/c4Diagram-ae766693-074bc318.js.gz +0 -0
- package/dist/base-assets/js/channel-eb962d65.js +0 -1
- package/dist/base-assets/js/clone-040a8e6c.js +0 -1
- package/dist/base-assets/js/edges-066a5561-3e450dad.js.gz +0 -0
- package/dist/base-assets/js/erDiagram-09d1c15f-5aa33fc3.js.gz +0 -0
- package/dist/base-assets/js/flowDb-c1833063-dd679e7a.js.gz +0 -0
- package/dist/base-assets/js/flowDiagram-b222e15a-cff1e343.js.gz +0 -0
- package/dist/base-assets/js/flowDiagram-v2-13329dc7-752c1e1a.js +0 -1
- package/dist/base-assets/js/flowchart-elk-definition-ae0efee6-e1560b86.js.gz +0 -0
- package/dist/base-assets/js/ganttDiagram-b62c793e-4e64bd93.js.gz +0 -0
- package/dist/base-assets/js/gitGraphDiagram-942e62fe-68f171cb.js.gz +0 -0
- package/dist/base-assets/js/graph-2f2b1d0f.js.gz +0 -0
- package/dist/base-assets/js/index-01f381cb-a30abf08.js.gz +0 -0
- package/dist/base-assets/js/index-fa41a7b5.js.gz +0 -0
- package/dist/base-assets/js/journeyDiagram-6625b456-df75da86.js.gz +0 -0
- package/dist/base-assets/js/layout-29f03de2.js.gz +0 -0
- package/dist/base-assets/js/mermaid.core-eb338566.js.gz +0 -0
- package/dist/base-assets/js/mindmap-definition-307c710a-e157c00e.js.gz +0 -0
- package/dist/base-assets/js/pieDiagram-bb1d19e5-1666075a.js.gz +0 -0
- package/dist/base-assets/js/react-cropper.es-825672c6.js.gz +0 -0
- package/dist/base-assets/js/requirementDiagram-87253d64-a41d6314.js.gz +0 -0
- package/dist/base-assets/js/sankeyDiagram-707fac0f-b039474b.js.gz +0 -0
- package/dist/base-assets/js/sequenceDiagram-6894f283-4048704a.js.gz +0 -0
- package/dist/base-assets/js/styles-0784dbeb-c0806fe9.js.gz +0 -0
- package/dist/base-assets/js/styles-b83b31c9-34688bd8.js.gz +0 -0
- package/dist/base-assets/js/timeline-definition-bf702344-c27bf0cf.js.gz +0 -0
- package/dist/base-assets/js/xychartDiagram-f11f50a6-35c35675.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) => {
|
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
|
|