w-web-sso 1.0.21 → 1.0.23
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/db/wsso/ips/data.mdb +0 -0
- package/db/wsso/ips/lock.mdb +0 -0
- package/db/wsso/tokens/data.mdb +0 -0
- package/db/wsso/tokens/lock.mdb +0 -0
- package/db/wsso/users/data.mdb +0 -0
- package/db/wsso/users/lock.mdb +0 -0
- package/dist/index.tmp +1 -1
- package/dist/js/app-legacy.86b4b255.js +2 -0
- package/dist/js/app-legacy.86b4b255.js.map +1 -0
- package/dist/js/app.86b4b255.js +2 -0
- package/dist/js/app.86b4b255.js.map +1 -0
- package/dist/js/{chunk-vendors-legacy.c67d66a8.js → chunk-vendors-legacy.db5d54d9.js} +1 -1
- package/dist/js/chunk-vendors-legacy.db5d54d9.js.map +1 -0
- package/dist/js/{chunk-vendors.c67d66a8.js → chunk-vendors.db5d54d9.js} +1 -1
- package/dist/js/chunk-vendors.db5d54d9.js.map +1 -0
- package/dist/w-web-sso.umd.js +2 -2
- package/dist/w-web-sso.umd.js.map +1 -1
- package/docs/WWebSso.html +1 -1
- package/docs/WWebSso.mjs.html +6 -11
- package/docs/index.html +1 -1
- package/g.provideUsers.mjs +31 -30
- package/package.json +2 -3
- package/server/WWebSso.mjs +5 -10
- package/server/provideTabs.mjs +71 -0
- package/server/staLogs/staIp.callWorker.mjs +1 -0
- package/server/staLogs/staIp.mjs +2 -1
- package/server/staLogs/staIp.shellWorker.mjs +1 -0
- package/server/staLogs/staToken.callWorker.mjs +1 -0
- package/server/staLogs/staToken.mjs +2 -1
- package/server/staLogs/staToken.shellWorker.mjs +1 -0
- package/server/staLogs/staUserAccountLogin.callWorker.mjs +1 -0
- package/server/staLogs/staUserAccountLogin.shellWorker.mjs +1 -0
- package/src/App.vue +0 -1
- package/src/getUserByToken.mjs +98 -0
- package/src/getUsersByToken.mjs +99 -0
- package/src/plugins/mShare.mjs +26 -7
- package/dist/js/app-legacy.1ef4eafd.js +0 -2
- package/dist/js/app-legacy.1ef4eafd.js.map +0 -1
- package/dist/js/app.1ef4eafd.js +0 -2
- package/dist/js/app.1ef4eafd.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.c67d66a8.js.map +0 -1
- package/dist/js/chunk-vendors.c67d66a8.js.map +0 -1
- package/server/provideUsers.mjs +0 -67
package/docs/WWebSso.html
CHANGED
|
@@ -387,7 +387,7 @@
|
|
|
387
387
|
<br class="clear">
|
|
388
388
|
|
|
389
389
|
<footer>
|
|
390
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on
|
|
390
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Wed Jul 23 2025 15:26:00 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
391
391
|
</footer>
|
|
392
392
|
|
|
393
393
|
<script>prettyPrint();</script>
|
package/docs/WWebSso.mjs.html
CHANGED
|
@@ -566,13 +566,13 @@ function WWebSso(WOrm, url, db, pathSettings) {
|
|
|
566
566
|
// return Promise.reject(`invalid ${key} from inp`)
|
|
567
567
|
// }
|
|
568
568
|
|
|
569
|
-
// //
|
|
570
|
-
//
|
|
569
|
+
// //r
|
|
570
|
+
// let r = {
|
|
571
571
|
// from,
|
|
572
572
|
// [key]: vs,
|
|
573
573
|
// }
|
|
574
574
|
|
|
575
|
-
// return
|
|
575
|
+
// return r
|
|
576
576
|
// }
|
|
577
577
|
|
|
578
578
|
|
|
@@ -621,13 +621,8 @@ function WWebSso(WOrm, url, db, pathSettings) {
|
|
|
621
621
|
//funCheckAdmin
|
|
622
622
|
let funCheckAdmin = (tk, u) => {
|
|
623
623
|
// console.log('tk', tk, 'u', u)
|
|
624
|
-
let
|
|
625
|
-
|
|
626
|
-
let b3 = !s.getIsBlocked(u) //不能封鎖中
|
|
627
|
-
let b4 = s.getIsAdmin(u) //須為系統管理員
|
|
628
|
-
let b5 = s.getIsActive(u) //須有效
|
|
629
|
-
let b = b1 && b2 && b3 && b4 && b5
|
|
630
|
-
// console.log('fun', 'tk', tk, 'u', u, b)
|
|
624
|
+
let b = s.checkUserAdmin(u)
|
|
625
|
+
// console.log('checkUserAdmin', b)
|
|
631
626
|
return b
|
|
632
627
|
}
|
|
633
628
|
|
|
@@ -1177,7 +1172,7 @@ export default WWebSso
|
|
|
1177
1172
|
<br class="clear">
|
|
1178
1173
|
|
|
1179
1174
|
<footer>
|
|
1180
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on
|
|
1175
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Wed Jul 23 2025 15:26:00 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
1181
1176
|
</footer>
|
|
1182
1177
|
|
|
1183
1178
|
<script>prettyPrint();</script>
|
package/docs/index.html
CHANGED
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<br class="clear">
|
|
72
72
|
|
|
73
73
|
<footer>
|
|
74
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on
|
|
74
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Wed Jul 23 2025 15:26:00 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
75
75
|
</footer>
|
|
76
76
|
|
|
77
77
|
<script>prettyPrint();</script>
|
package/g.provideUsers.mjs
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
import map from 'lodash-es/map.js'
|
|
2
2
|
import ds from './src/schema/index.mjs'
|
|
3
|
-
import
|
|
3
|
+
import provideTabs from './server/provideTabs.mjs'
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
async function provide() {
|
|
7
7
|
|
|
8
|
-
let url = `http://localhost:11007/syncAndReplaceUsers?token=sys`
|
|
9
|
-
|
|
10
|
-
let from = `pd`
|
|
11
|
-
|
|
12
|
-
let rs = [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]
|
|
17
|
-
rs = map(rs, ([key, name], k) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
})
|
|
31
|
-
console.log('rs', rs)
|
|
32
|
-
|
|
33
|
-
let r = await
|
|
34
|
-
console.log('r.msg', r.msg)
|
|
35
|
-
|
|
8
|
+
// let url = `http://localhost:11007/syncAndReplaceUsers?token=sys`
|
|
9
|
+
|
|
10
|
+
// let from = `pd`
|
|
11
|
+
|
|
12
|
+
// let rs = [
|
|
13
|
+
// ['pd-viewer', 'pd-普通瀏覽者'],
|
|
14
|
+
// ['pd-basic', 'pd-一般使用者'],
|
|
15
|
+
// ['pd-admin', 'pd-系統管理者'],
|
|
16
|
+
// ]
|
|
17
|
+
// rs = map(rs, ([key, name], k) => {
|
|
18
|
+
// let v = ds.users.funNew({
|
|
19
|
+
// order: 1000 + k,
|
|
20
|
+
// name,
|
|
21
|
+
// email: `${key}@example.com`,
|
|
22
|
+
// userId: 'id-for-admin',
|
|
23
|
+
// from,
|
|
24
|
+
// })
|
|
25
|
+
// v.id = `id-for-${key}`
|
|
26
|
+
// if (key === 'pd-admin') {
|
|
27
|
+
// v.isAdmin = 'y'
|
|
28
|
+
// }
|
|
29
|
+
// return v
|
|
30
|
+
// })
|
|
31
|
+
// console.log('rs', rs)
|
|
32
|
+
|
|
33
|
+
// let r = await provideTabs(url, from, rs)
|
|
34
|
+
// console.log('r.msg', r.msg)
|
|
35
|
+
|
|
36
|
+
return Promise.reject(`incompleted`)
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
provide()
|
|
@@ -41,4 +42,4 @@ provide()
|
|
|
41
42
|
})
|
|
42
43
|
|
|
43
44
|
|
|
44
|
-
//node g.
|
|
45
|
+
//node g.provideTabs.mjs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "w-web-sso",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"main": "dist/w-web-sso.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@mdi/js": "^7.4.47",
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
"w-serv-hapi": "^1.0.60",
|
|
13
13
|
"w-serv-orm": "^1.0.29",
|
|
14
14
|
"w-syslog": "^1.0.6",
|
|
15
|
-
"
|
|
16
|
-
"wsemi": "^1.8.15"
|
|
15
|
+
"wsemi": "^1.8.16"
|
|
17
16
|
},
|
|
18
17
|
"devDependencies": {
|
|
19
18
|
"@vue/cli-plugin-babel": "^5.0.8",
|
package/server/WWebSso.mjs
CHANGED
|
@@ -519,13 +519,13 @@ function WWebSso(WOrm, url, db, pathSettings) {
|
|
|
519
519
|
// return Promise.reject(`invalid ${key} from inp`)
|
|
520
520
|
// }
|
|
521
521
|
|
|
522
|
-
// //
|
|
523
|
-
//
|
|
522
|
+
// //r
|
|
523
|
+
// let r = {
|
|
524
524
|
// from,
|
|
525
525
|
// [key]: vs,
|
|
526
526
|
// }
|
|
527
527
|
|
|
528
|
-
// return
|
|
528
|
+
// return r
|
|
529
529
|
// }
|
|
530
530
|
|
|
531
531
|
|
|
@@ -574,13 +574,8 @@ function WWebSso(WOrm, url, db, pathSettings) {
|
|
|
574
574
|
//funCheckAdmin
|
|
575
575
|
let funCheckAdmin = (tk, u) => {
|
|
576
576
|
// console.log('tk', tk, 'u', u)
|
|
577
|
-
let
|
|
578
|
-
|
|
579
|
-
let b3 = !s.getIsBlocked(u) //不能封鎖中
|
|
580
|
-
let b4 = s.getIsAdmin(u) //須為系統管理員
|
|
581
|
-
let b5 = s.getIsActive(u) //須有效
|
|
582
|
-
let b = b1 && b2 && b3 && b4 && b5
|
|
583
|
-
// console.log('fun', 'tk', tk, 'u', u, b)
|
|
577
|
+
let b = s.checkUserAdmin(u)
|
|
578
|
+
// console.log('checkUserAdmin', b)
|
|
584
579
|
return b
|
|
585
580
|
}
|
|
586
581
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
import ltdtpick from 'wsemi/src/ltdtpick.mjs'
|
|
3
|
+
import genPm from 'wsemi/src/genPm.mjs'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
async function provideTabs(url, keyTable, group, rows) {
|
|
7
|
+
//url: 伺服器提供的接入網址, 例如 http://localhost:11007/syncAndReplaceTabs?token={token}&keyTable={keyTable}
|
|
8
|
+
//keyTable: 資料表名
|
|
9
|
+
//from: 指陣列數據來源
|
|
10
|
+
//rows: 陣列數據
|
|
11
|
+
|
|
12
|
+
//pm
|
|
13
|
+
let pm = genPm()
|
|
14
|
+
|
|
15
|
+
// //ks
|
|
16
|
+
// let ks = [
|
|
17
|
+
// 'id',
|
|
18
|
+
// 'order',
|
|
19
|
+
// 'name',
|
|
20
|
+
// 'email',
|
|
21
|
+
// 'description',
|
|
22
|
+
// 'from',
|
|
23
|
+
// 'isAdmin',
|
|
24
|
+
// 'userId',
|
|
25
|
+
// 'timeCreate',
|
|
26
|
+
// 'userIdUpdate',
|
|
27
|
+
// 'timeUpdate',
|
|
28
|
+
// 'isActive',
|
|
29
|
+
// ]
|
|
30
|
+
|
|
31
|
+
// //ltdtpick
|
|
32
|
+
// users = ltdtpick(users, ks)
|
|
33
|
+
|
|
34
|
+
// //rin
|
|
35
|
+
// let rin = {
|
|
36
|
+
// from,
|
|
37
|
+
// users,
|
|
38
|
+
// }
|
|
39
|
+
// // rin = JSON.stringify(rin)
|
|
40
|
+
|
|
41
|
+
// //axios
|
|
42
|
+
// await axios({
|
|
43
|
+
// method: 'post',
|
|
44
|
+
// url,
|
|
45
|
+
// headers: { 'Content-Type': 'application/json; charset=utf-8' },
|
|
46
|
+
// data: rin,
|
|
47
|
+
// })
|
|
48
|
+
// .then((res) => {
|
|
49
|
+
// // console.log(res)
|
|
50
|
+
// let r = {
|
|
51
|
+
// msg: '成功傳輸Users清單',
|
|
52
|
+
// res,
|
|
53
|
+
// }
|
|
54
|
+
// pm.resolve(r)
|
|
55
|
+
// })
|
|
56
|
+
// .catch((err) => {
|
|
57
|
+
// // console.log(err)
|
|
58
|
+
// let r = {
|
|
59
|
+
// msg: '無法傳輸Users清單',
|
|
60
|
+
// res: err,
|
|
61
|
+
// }
|
|
62
|
+
// pm.reject(r)
|
|
63
|
+
// })
|
|
64
|
+
|
|
65
|
+
pm.reject(`incompleted`)
|
|
66
|
+
|
|
67
|
+
return pm
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
export default provideTabs
|
package/server/staLogs/staIp.mjs
CHANGED
|
@@ -7,10 +7,11 @@ import mapValues from 'lodash-es/mapValues.js'
|
|
|
7
7
|
import merge from 'lodash-es/merge.js'
|
|
8
8
|
import genPm from 'wsemi/src/genPm.mjs'
|
|
9
9
|
import isestr from 'wsemi/src/isestr.mjs'
|
|
10
|
-
import randomIntRange from 'wsemi/src/randomIntRange.mjs'
|
|
10
|
+
// import randomIntRange from 'wsemi/src/randomIntRange.mjs'
|
|
11
11
|
import fsTreeFolder from 'wsemi/src/fsTreeFolder.mjs'
|
|
12
12
|
import fsBuildReadStreamText from 'wsemi/src/fsBuildReadStreamText.mjs'
|
|
13
13
|
|
|
14
|
+
|
|
14
15
|
async function staIp(timeLength = 7, timeInterval = 'hr', opt = {}) {
|
|
15
16
|
|
|
16
17
|
//fdLog
|
|
@@ -7,10 +7,11 @@ import mapValues from 'lodash-es/mapValues.js'
|
|
|
7
7
|
import merge from 'lodash-es/merge.js'
|
|
8
8
|
import genPm from 'wsemi/src/genPm.mjs'
|
|
9
9
|
import isestr from 'wsemi/src/isestr.mjs'
|
|
10
|
-
import randomIntRange from 'wsemi/src/randomIntRange.mjs'
|
|
10
|
+
// import randomIntRange from 'wsemi/src/randomIntRange.mjs'
|
|
11
11
|
import fsTreeFolder from 'wsemi/src/fsTreeFolder.mjs'
|
|
12
12
|
import fsBuildReadStreamText from 'wsemi/src/fsBuildReadStreamText.mjs'
|
|
13
13
|
|
|
14
|
+
|
|
14
15
|
async function staToken(timeLength = 7, timeInterval = 'hr', opt = {}) {
|
|
15
16
|
|
|
16
17
|
//fdLog
|
package/src/App.vue
CHANGED
|
@@ -35,7 +35,6 @@ import isestr from 'wsemi/src/isestr.mjs'
|
|
|
35
35
|
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
36
36
|
import isDev from 'wsemi/src/isDev.mjs'
|
|
37
37
|
import waitFun from 'wsemi/src/waitFun.mjs'
|
|
38
|
-
import wui from 'w-ui-loginout/src/WUiLoginout.mjs'
|
|
39
38
|
import LoadingWinBar from './components/Common/LoadingWinBar.vue'
|
|
40
39
|
import CheckYesNo from './components/Common/CheckYesNo.vue'
|
|
41
40
|
import CheckYes from './components/Common/CheckYes.vue'
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
import get from 'lodash-es/get.js'
|
|
3
|
+
import isestr from 'wsemi/src/isestr.mjs'
|
|
4
|
+
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
5
|
+
import isfun from 'wsemi/src/isfun.mjs'
|
|
6
|
+
import ispm from 'wsemi/src/ispm.mjs'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
async function getUserByToken(url, tokenSelf, tokenTar, opt = {}) {
|
|
10
|
+
//url: http://localhost:11007/api/getSsoUserInfor
|
|
11
|
+
let errTemp = null
|
|
12
|
+
|
|
13
|
+
//check
|
|
14
|
+
if (!isestr(url)) {
|
|
15
|
+
return Promise.reject('invalid url')
|
|
16
|
+
}
|
|
17
|
+
if (!isestr(tokenSelf)) {
|
|
18
|
+
return Promise.reject('invalid tokenSelf')
|
|
19
|
+
}
|
|
20
|
+
if (!isestr(tokenTar)) {
|
|
21
|
+
return Promise.reject('invalid tokenTar')
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//funConvertUser
|
|
25
|
+
let funConvertUser = get(opt, 'funConvertUser')
|
|
26
|
+
|
|
27
|
+
//url
|
|
28
|
+
url = `${url}?token={sysToken}&key=token&value={token}`
|
|
29
|
+
url = url.replaceAll('{sysToken}', tokenSelf) //系統介接用ssoToken
|
|
30
|
+
url = url.replaceAll('{token}', tokenTar)
|
|
31
|
+
// console.log('getUserByToken: url', url)
|
|
32
|
+
|
|
33
|
+
//get
|
|
34
|
+
let res = await axios.get(url)
|
|
35
|
+
.catch((err) => {
|
|
36
|
+
errTemp = err.toString()
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
//check
|
|
40
|
+
if (errTemp !== null) {
|
|
41
|
+
console.log('res', res)
|
|
42
|
+
console.log('errTemp', errTemp)
|
|
43
|
+
console.log(`can not get user by url[${url}]`)
|
|
44
|
+
return Promise.reject(`can not get user by url[${url}]`) //由SSO取得使用者資訊錯誤
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//data
|
|
48
|
+
let data = get(res, 'data')
|
|
49
|
+
|
|
50
|
+
//state
|
|
51
|
+
let state = get(data, 'state', '')
|
|
52
|
+
|
|
53
|
+
//msg
|
|
54
|
+
let msg = get(data, 'msg')
|
|
55
|
+
|
|
56
|
+
//check
|
|
57
|
+
if (state !== 'success') {
|
|
58
|
+
console.log('res', res)
|
|
59
|
+
console.log('data', data)
|
|
60
|
+
console.log('state', state)
|
|
61
|
+
console.log('errTemp', msg)
|
|
62
|
+
console.log(`can not get user data by url[${url}]`)
|
|
63
|
+
return Promise.reject(`can not get user data by url[${url}]`) //取得使用者資訊失敗
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//u
|
|
67
|
+
let u = msg
|
|
68
|
+
// console.log('getUserByToken u(msg)', u)
|
|
69
|
+
|
|
70
|
+
//check
|
|
71
|
+
if (!iseobj(u)) {
|
|
72
|
+
console.log(`no user data by url[${url}]`)
|
|
73
|
+
return Promise.reject(`no user data by url[${url}]`)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//check
|
|
77
|
+
if (isfun(funConvertUser)) {
|
|
78
|
+
|
|
79
|
+
//funConvertUser
|
|
80
|
+
u = funConvertUser(u)
|
|
81
|
+
if (ispm(u)) {
|
|
82
|
+
u = await u
|
|
83
|
+
}
|
|
84
|
+
// console.log('getUserByToken u(funConvertUser)', u)
|
|
85
|
+
|
|
86
|
+
//check
|
|
87
|
+
if (!iseobj(u)) {
|
|
88
|
+
console.log(`no user data after funConvertUser`)
|
|
89
|
+
return Promise.reject(`no user data after funConvertUser`)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return u
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
export default getUserByToken
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
import get from 'lodash-es/get.js'
|
|
3
|
+
import size from 'lodash-es/size.js'
|
|
4
|
+
import isestr from 'wsemi/src/isestr.mjs'
|
|
5
|
+
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
6
|
+
import isfun from 'wsemi/src/isfun.mjs'
|
|
7
|
+
import ispm from 'wsemi/src/ispm.mjs'
|
|
8
|
+
import pmSeries from 'wsemi/src/pmSeries.mjs'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
async function getUsersByToken(url, tokenSelf, opt = {}) {
|
|
12
|
+
//url: http://localhost:11007/api/getSsoUsersList
|
|
13
|
+
let errTemp = null
|
|
14
|
+
|
|
15
|
+
//check
|
|
16
|
+
if (!isestr(url)) {
|
|
17
|
+
return Promise.reject('invalid url')
|
|
18
|
+
}
|
|
19
|
+
if (!isestr(tokenSelf)) {
|
|
20
|
+
return Promise.reject('invalid tokenSelf')
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//funConvertUser
|
|
24
|
+
let funConvertUser = get(opt, 'funConvertUser')
|
|
25
|
+
|
|
26
|
+
//url
|
|
27
|
+
url = `${url}?token={sysToken}`
|
|
28
|
+
url = url.replaceAll('{sysToken}', tokenSelf) //系統介接用ssoToken
|
|
29
|
+
// console.log('getUsersByToken: url', url)
|
|
30
|
+
|
|
31
|
+
//get
|
|
32
|
+
let res = await axios.get(url)
|
|
33
|
+
.catch((err) => {
|
|
34
|
+
errTemp = err.toString()
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
//check
|
|
38
|
+
if (errTemp !== null) {
|
|
39
|
+
console.log('res', res)
|
|
40
|
+
console.log('errTemp', errTemp)
|
|
41
|
+
console.log(`can not get users by url[${url}]`)
|
|
42
|
+
return Promise.reject(`can not get users by url[${url}]`) //由SSO取得使用者清單資訊錯誤
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//data
|
|
46
|
+
let data = get(res, 'data')
|
|
47
|
+
|
|
48
|
+
//state
|
|
49
|
+
let state = get(data, 'state', '')
|
|
50
|
+
|
|
51
|
+
//msg
|
|
52
|
+
let msg = get(data, 'msg')
|
|
53
|
+
|
|
54
|
+
//check
|
|
55
|
+
if (state !== 'success') {
|
|
56
|
+
console.log('res', res)
|
|
57
|
+
console.log('data', data)
|
|
58
|
+
console.log('state', state)
|
|
59
|
+
console.log('errTemp', msg)
|
|
60
|
+
console.log(`can not get users data by url[${url}]`)
|
|
61
|
+
return Promise.reject(`can not get users data by url[${url}]`) //取得使用者清單資訊失敗
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//us
|
|
65
|
+
let us = msg
|
|
66
|
+
// console.log('getUsersByToken us(msg)', us)
|
|
67
|
+
|
|
68
|
+
//check
|
|
69
|
+
if (size(us) === 0) {
|
|
70
|
+
console.log(`no users data by url[${url}]`)
|
|
71
|
+
return Promise.reject(`no users data by url[${url}]`)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//check
|
|
75
|
+
if (isfun(funConvertUser)) {
|
|
76
|
+
us = await pmSeries(us, async(u) => {
|
|
77
|
+
|
|
78
|
+
//funConvertUser
|
|
79
|
+
u = funConvertUser(u)
|
|
80
|
+
if (ispm(u)) {
|
|
81
|
+
u = await u
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
//check
|
|
85
|
+
if (!iseobj(u)) {
|
|
86
|
+
console.log(`no user data after funConvertUser`)
|
|
87
|
+
return Promise.reject(`no user data after funConvertUser`)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return u
|
|
91
|
+
})
|
|
92
|
+
// console.log('getUsersByToken us(funConvertUser)', us)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return us
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
export default getUsersByToken
|
package/src/plugins/mShare.mjs
CHANGED
|
@@ -13,12 +13,6 @@ import sep from 'wsemi/src/sep.mjs'
|
|
|
13
13
|
import iseobj from 'wsemi/src/iseobj.mjs'
|
|
14
14
|
import isestr from 'wsemi/src/isestr.mjs'
|
|
15
15
|
import istimemsTZ from 'wsemi/src/istimemsTZ.mjs'
|
|
16
|
-
import haskey from 'wsemi/src/haskey.mjs'
|
|
17
|
-
import composeToTree from 'wsemi/src/composeToTree.mjs'
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
// //dlm
|
|
21
|
-
// let dlm = '/'
|
|
22
16
|
|
|
23
17
|
|
|
24
18
|
function getNameNew(rows, key = 'name', nameBase = '', nameExt = '') {
|
|
@@ -339,6 +333,29 @@ function getIsActive(v) {
|
|
|
339
333
|
}
|
|
340
334
|
|
|
341
335
|
|
|
336
|
+
function checkUserBasic(u) {
|
|
337
|
+
//須保留, 供內外部調用
|
|
338
|
+
let b1 = getIsVerified(u) //須已驗證
|
|
339
|
+
let b2 = !getIsExpired(u) //不能過期
|
|
340
|
+
let b3 = !getIsBlocked(u) //不能封鎖中
|
|
341
|
+
let b4 = getIsActive(u) //須有效
|
|
342
|
+
let b = b1 && b2 && b3 && b4
|
|
343
|
+
return b
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
function checkUserAdmin(u) {
|
|
348
|
+
//須保留, 供內外部調用
|
|
349
|
+
let b1 = getIsVerified(u) //須已驗證
|
|
350
|
+
let b2 = !getIsExpired(u) //不能過期
|
|
351
|
+
let b3 = !getIsBlocked(u) //不能封鎖中
|
|
352
|
+
let b4 = getIsAdmin(u) //須為系統管理員
|
|
353
|
+
let b5 = getIsActive(u) //須有效
|
|
354
|
+
let b = b1 && b2 && b3 && b4 && b5
|
|
355
|
+
return b
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
|
|
342
359
|
export {
|
|
343
360
|
getNameNew,
|
|
344
361
|
// getAllBlocks,
|
|
@@ -351,5 +368,7 @@ export {
|
|
|
351
368
|
getIsBlocked,
|
|
352
369
|
getIsEnded,
|
|
353
370
|
getIsAdmin,
|
|
354
|
-
getIsActive
|
|
371
|
+
getIsActive,
|
|
372
|
+
checkUserBasic,
|
|
373
|
+
checkUserAdmin
|
|
355
374
|
}
|