w-web-perm 1.0.36 → 1.0.37
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/wperm/grups/lock.mdb +0 -0
- package/db/wperm/pemis/lock.mdb +0 -0
- package/db/wperm/targets/lock.mdb +0 -0
- package/db/wperm/users/lock.mdb +0 -0
- package/dist/index.tmp +1 -1
- package/dist/js/{chunk-vendors.b1501830.js → chunk-vendors-legacy.d7df8579.js} +2 -2
- package/dist/js/chunk-vendors-legacy.d7df8579.js.map +1 -0
- package/dist/js/{chunk-vendors-legacy.b1501830.js → chunk-vendors.d7df8579.js} +2 -2
- package/dist/js/chunk-vendors.d7df8579.js.map +1 -0
- package/dist/w-web-perm.umd.js +2 -2
- package/dist/w-web-perm.umd.js.map +1 -1
- package/docs/WWebPerm.html +1 -1
- package/docs/WWebPerm.mjs.html +48 -78
- package/docs/index.html +1 -1
- package/package.json +3 -3
- package/server/WWebPerm.mjs +47 -77
- package/src/getPerm.mjs +96 -0
- package/src/getPermUserInfor.mjs +100 -0
- package/tableTags.json +1 -1
- package/dist/js/chunk-vendors-legacy.b1501830.js.map +0 -1
- package/dist/js/chunk-vendors.b1501830.js.map +0 -1
package/docs/WWebPerm.html
CHANGED
|
@@ -925,7 +925,7 @@
|
|
|
925
925
|
<br class="clear">
|
|
926
926
|
|
|
927
927
|
<footer>
|
|
928
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on
|
|
928
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Fri Jul 25 2025 00:02:13 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
929
929
|
</footer>
|
|
930
930
|
|
|
931
931
|
<script>prettyPrint();</script>
|
package/docs/WWebPerm.mjs.html
CHANGED
|
@@ -363,25 +363,32 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
|
|
366
|
-
//
|
|
367
|
-
let
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
366
|
+
// //getTargetsList
|
|
367
|
+
// let getTargetsList = async (userId) => {
|
|
368
|
+
// let rs = await woItems.targets.select()
|
|
369
|
+
// return rs
|
|
370
|
+
// }
|
|
371
371
|
|
|
372
372
|
|
|
373
|
-
//
|
|
374
|
-
let
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
}
|
|
373
|
+
// //getPemisList
|
|
374
|
+
// let getPemisList = async (userId) => {
|
|
375
|
+
// let rs = await woItems.pemis.select()
|
|
376
|
+
// return rs
|
|
377
|
+
// }
|
|
378
378
|
|
|
379
379
|
|
|
380
|
-
//
|
|
381
|
-
let
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
380
|
+
// //getGrupsList
|
|
381
|
+
// let getGrupsList = async (userId) => {
|
|
382
|
+
// let rs = await woItems.grups.select()
|
|
383
|
+
// return rs
|
|
384
|
+
// }
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
// //getUsersList
|
|
388
|
+
// let getUsersList = async (userId) => {
|
|
389
|
+
// let rs = await woItems.users.select()
|
|
390
|
+
// return rs
|
|
391
|
+
// }
|
|
385
392
|
|
|
386
393
|
|
|
387
394
|
//updateTabItems
|
|
@@ -567,34 +574,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
567
574
|
}
|
|
568
575
|
|
|
569
576
|
//check userSelf
|
|
570
|
-
|
|
571
|
-
// let id = get(userSelf, 'id', '')
|
|
572
|
-
// if (!isestr(id)) {
|
|
573
|
-
// console.log('userSelf', userSelf)
|
|
574
|
-
// console.log('can not get the userId')
|
|
575
|
-
// return Promise.reject(`can not get the userId`)
|
|
576
|
-
// }
|
|
577
|
-
// let email = get(userSelf, 'email', '')
|
|
578
|
-
// if (!isestr(email)) {
|
|
579
|
-
// console.log('userSelf', userSelf)
|
|
580
|
-
// console.log('can not get the email of user')
|
|
581
|
-
// return Promise.reject(`can not get the email of user`)
|
|
582
|
-
// }
|
|
583
|
-
// let name = get(userSelf, 'name', '')
|
|
584
|
-
// if (!isestr(name)) {
|
|
585
|
-
// console.log('userSelf', userSelf)
|
|
586
|
-
// console.log('can not get userName')
|
|
587
|
-
// return Promise.reject(`can not get userName`)
|
|
588
|
-
// }
|
|
589
|
-
// let isAdmin = get(userSelf, 'isAdmin', '')
|
|
590
|
-
// if (isAdmin !== 'y' && isAdmin !== 'n') {
|
|
591
|
-
// console.log('userSelf', userSelf)
|
|
592
|
-
// console.log('userSelf.isAdmin is not y or n', userSelf.isAdmin)
|
|
593
|
-
// console.log('can not get the role of user')
|
|
594
|
-
// return Promise.reject(`can not get the role of user`)
|
|
595
|
-
// }
|
|
596
|
-
await checkUser(userSelf)
|
|
597
|
-
}
|
|
577
|
+
await checkUser(userSelf)
|
|
598
578
|
|
|
599
579
|
//須反查perm內users, 提供正規化屬性
|
|
600
580
|
let vSelf = get(userSelf, mappingBy, '')
|
|
@@ -920,17 +900,6 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
920
900
|
|
|
921
901
|
//apis
|
|
922
902
|
let apis = [
|
|
923
|
-
// {
|
|
924
|
-
// method: 'GET',
|
|
925
|
-
// path: '/api/someAPI',
|
|
926
|
-
// handler: async function (req, res) {
|
|
927
|
-
|
|
928
|
-
// // //token
|
|
929
|
-
// // let token = get(req, 'query.token', '')
|
|
930
|
-
|
|
931
|
-
// return 'someAPI'
|
|
932
|
-
// },
|
|
933
|
-
// },
|
|
934
903
|
|
|
935
904
|
{
|
|
936
905
|
method: 'GET',
|
|
@@ -986,7 +955,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
986
955
|
// console.log('getPerm', req)
|
|
987
956
|
|
|
988
957
|
async function core() {
|
|
989
|
-
//提供對象為node與browser使用者,
|
|
958
|
+
//提供對象為node與browser端, 須為client使用者, 須先檢測token是否有效, 再依照token取得使用者資訊物件, 再由其userId查詢回傳該使用者之權限資訊物件
|
|
990
959
|
|
|
991
960
|
//token
|
|
992
961
|
let token = get(req, 'query.token', '')
|
|
@@ -1001,7 +970,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1001
970
|
return Promise.reject(`token does not have permission`)
|
|
1002
971
|
}
|
|
1003
972
|
|
|
1004
|
-
//getAndVerifyClientUser, 發起token的所屬使用者,
|
|
973
|
+
//getAndVerifyClientUser, 發起token的所屬使用者, 驗證僅對client使用者, 不得使用app使用者
|
|
1005
974
|
let userSelf = await getAndVerifyClientUser(token, 'getPerm')
|
|
1006
975
|
// console.log('userSelf', userSelf)
|
|
1007
976
|
|
|
@@ -1055,12 +1024,12 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1055
1024
|
},
|
|
1056
1025
|
{
|
|
1057
1026
|
method: 'GET',
|
|
1058
|
-
path: '/api/
|
|
1027
|
+
path: '/api/getPermUserInfor',
|
|
1059
1028
|
handler: async function (req, res) {
|
|
1060
|
-
// console.log('
|
|
1029
|
+
// console.log('getPermUserInfor', req)
|
|
1061
1030
|
|
|
1062
1031
|
async function core() {
|
|
1063
|
-
//提供對象為node使用者,
|
|
1032
|
+
//提供對象為node端, 須為app使用者, 須先檢測token是否有效, 再由其userId查詢回傳該使用者權限資訊物件
|
|
1064
1033
|
|
|
1065
1034
|
//tokenSelf
|
|
1066
1035
|
let tokenSelf = get(req, 'query.token', '')
|
|
@@ -1069,33 +1038,33 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1069
1038
|
//check
|
|
1070
1039
|
if (!isestr(tokenSelf)) {
|
|
1071
1040
|
console.log('req.query', get(req, 'query'))
|
|
1072
|
-
console.log('tokenSelf
|
|
1073
|
-
console.log('[API]getPermById/check tokenSelf: invalid tokenSelf')
|
|
1041
|
+
console.log('[API]getPermUserInfor/check tokenSelf: invalid tokenSelf')
|
|
1074
1042
|
console.log(`token does not have permission`)
|
|
1075
1043
|
return Promise.reject(`token does not have permission`)
|
|
1076
1044
|
}
|
|
1077
1045
|
|
|
1078
|
-
//
|
|
1079
|
-
let
|
|
1080
|
-
// console.log('
|
|
1046
|
+
//getAndVerifyAppUser, 發起token的所屬使用者, 驗證須為app使用者
|
|
1047
|
+
let userSelf = await getAndVerifyAppUser(tokenSelf, 'getPermUserInfor')
|
|
1048
|
+
// console.log('userSelf', userSelf)
|
|
1081
1049
|
|
|
1082
1050
|
//check
|
|
1083
|
-
if (!
|
|
1051
|
+
if (!iseobj(userSelf)) {
|
|
1084
1052
|
console.log('req.query', get(req, 'query'))
|
|
1085
|
-
console.log('
|
|
1086
|
-
console.log('[API]
|
|
1053
|
+
console.log('tokenSelf', tokenSelf)
|
|
1054
|
+
console.log('[API]getPermUserInfor/check userSelf: invalid userSelf')
|
|
1087
1055
|
console.log(`token does not have permission`)
|
|
1088
1056
|
return Promise.reject(`token does not have permission`)
|
|
1089
1057
|
}
|
|
1090
1058
|
|
|
1091
|
-
//
|
|
1092
|
-
let
|
|
1093
|
-
// console.log('
|
|
1059
|
+
//userIdFind, 欲查找使用者的userId
|
|
1060
|
+
let userIdFind = get(req, 'query.userId', '')
|
|
1061
|
+
// console.log('userIdFind', userIdFind)
|
|
1094
1062
|
|
|
1095
1063
|
//check
|
|
1096
|
-
if (!
|
|
1064
|
+
if (!isestr(userIdFind)) {
|
|
1065
|
+
console.log('req.query', get(req, 'query'))
|
|
1097
1066
|
console.log('tokenSelf', tokenSelf)
|
|
1098
|
-
console.log('[API]
|
|
1067
|
+
console.log('[API]getPermUserInfor/check userIdFind: invalid userIdFind')
|
|
1099
1068
|
console.log(`token does not have permission`)
|
|
1100
1069
|
return Promise.reject(`token does not have permission`)
|
|
1101
1070
|
}
|
|
@@ -1107,7 +1076,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1107
1076
|
//check
|
|
1108
1077
|
if (!iseobj(userWithRulesFind)) {
|
|
1109
1078
|
console.log('userIdFind', userIdFind)
|
|
1110
|
-
console.log('[API]
|
|
1079
|
+
console.log('[API]getPermUserInfor/check userWithRulesFind: invalid userWithRulesFind')
|
|
1111
1080
|
console.log(`userId does not have permrules`)
|
|
1112
1081
|
return Promise.reject(`userId does not have permrules`)
|
|
1113
1082
|
}
|
|
@@ -1120,7 +1089,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1120
1089
|
if (isErr(r.msg)) {
|
|
1121
1090
|
r.msg = r.msg.message
|
|
1122
1091
|
}
|
|
1123
|
-
// console.log('
|
|
1092
|
+
// console.log('getPermUserInfor', r)
|
|
1124
1093
|
|
|
1125
1094
|
return r
|
|
1126
1095
|
},
|
|
@@ -1269,9 +1238,10 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1269
1238
|
|
|
1270
1239
|
getWebInfor,
|
|
1271
1240
|
|
|
1272
|
-
getTargetsList,
|
|
1273
|
-
|
|
1274
|
-
|
|
1241
|
+
// getTargetsList,
|
|
1242
|
+
// getPemisList,
|
|
1243
|
+
// getGrupsList,
|
|
1244
|
+
// getUsersList,
|
|
1275
1245
|
|
|
1276
1246
|
updateTargets,
|
|
1277
1247
|
updatePemis,
|
|
@@ -1302,7 +1272,7 @@ export default WWebPerm
|
|
|
1302
1272
|
<br class="clear">
|
|
1303
1273
|
|
|
1304
1274
|
<footer>
|
|
1305
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on
|
|
1275
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Fri Jul 25 2025 00:02:13 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
1306
1276
|
</footer>
|
|
1307
1277
|
|
|
1308
1278
|
<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 Fri Jul 25 2025 00:02:13 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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "w-web-perm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.37",
|
|
4
4
|
"main": "dist/w-web-perm.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@mdi/js": "^7.4.47",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"w-data-collector": "^1.0.22",
|
|
13
13
|
"w-serv-hapi": "^1.0.60",
|
|
14
14
|
"w-serv-orm": "^1.0.29",
|
|
15
|
-
"w-ui-loginout": "^1.0.
|
|
16
|
-
"wsemi": "^1.8.
|
|
15
|
+
"w-ui-loginout": "^1.0.10",
|
|
16
|
+
"wsemi": "^1.8.16"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@vue/cli-plugin-babel": "^5.0.8",
|
package/server/WWebPerm.mjs
CHANGED
|
@@ -316,25 +316,32 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
316
316
|
}
|
|
317
317
|
|
|
318
318
|
|
|
319
|
-
//
|
|
320
|
-
let
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
}
|
|
319
|
+
// //getTargetsList
|
|
320
|
+
// let getTargetsList = async (userId) => {
|
|
321
|
+
// let rs = await woItems.targets.select()
|
|
322
|
+
// return rs
|
|
323
|
+
// }
|
|
324
324
|
|
|
325
325
|
|
|
326
|
-
//
|
|
327
|
-
let
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
}
|
|
326
|
+
// //getPemisList
|
|
327
|
+
// let getPemisList = async (userId) => {
|
|
328
|
+
// let rs = await woItems.pemis.select()
|
|
329
|
+
// return rs
|
|
330
|
+
// }
|
|
331
331
|
|
|
332
332
|
|
|
333
|
-
//
|
|
334
|
-
let
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
}
|
|
333
|
+
// //getGrupsList
|
|
334
|
+
// let getGrupsList = async (userId) => {
|
|
335
|
+
// let rs = await woItems.grups.select()
|
|
336
|
+
// return rs
|
|
337
|
+
// }
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
// //getUsersList
|
|
341
|
+
// let getUsersList = async (userId) => {
|
|
342
|
+
// let rs = await woItems.users.select()
|
|
343
|
+
// return rs
|
|
344
|
+
// }
|
|
338
345
|
|
|
339
346
|
|
|
340
347
|
//updateTabItems
|
|
@@ -520,34 +527,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
520
527
|
}
|
|
521
528
|
|
|
522
529
|
//check userSelf
|
|
523
|
-
|
|
524
|
-
// let id = get(userSelf, 'id', '')
|
|
525
|
-
// if (!isestr(id)) {
|
|
526
|
-
// console.log('userSelf', userSelf)
|
|
527
|
-
// console.log('can not get the userId')
|
|
528
|
-
// return Promise.reject(`can not get the userId`)
|
|
529
|
-
// }
|
|
530
|
-
// let email = get(userSelf, 'email', '')
|
|
531
|
-
// if (!isestr(email)) {
|
|
532
|
-
// console.log('userSelf', userSelf)
|
|
533
|
-
// console.log('can not get the email of user')
|
|
534
|
-
// return Promise.reject(`can not get the email of user`)
|
|
535
|
-
// }
|
|
536
|
-
// let name = get(userSelf, 'name', '')
|
|
537
|
-
// if (!isestr(name)) {
|
|
538
|
-
// console.log('userSelf', userSelf)
|
|
539
|
-
// console.log('can not get userName')
|
|
540
|
-
// return Promise.reject(`can not get userName`)
|
|
541
|
-
// }
|
|
542
|
-
// let isAdmin = get(userSelf, 'isAdmin', '')
|
|
543
|
-
// if (isAdmin !== 'y' && isAdmin !== 'n') {
|
|
544
|
-
// console.log('userSelf', userSelf)
|
|
545
|
-
// console.log('userSelf.isAdmin is not y or n', userSelf.isAdmin)
|
|
546
|
-
// console.log('can not get the role of user')
|
|
547
|
-
// return Promise.reject(`can not get the role of user`)
|
|
548
|
-
// }
|
|
549
|
-
await checkUser(userSelf)
|
|
550
|
-
}
|
|
530
|
+
await checkUser(userSelf)
|
|
551
531
|
|
|
552
532
|
//須反查perm內users, 提供正規化屬性
|
|
553
533
|
let vSelf = get(userSelf, mappingBy, '')
|
|
@@ -873,17 +853,6 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
873
853
|
|
|
874
854
|
//apis
|
|
875
855
|
let apis = [
|
|
876
|
-
// {
|
|
877
|
-
// method: 'GET',
|
|
878
|
-
// path: '/api/someAPI',
|
|
879
|
-
// handler: async function (req, res) {
|
|
880
|
-
|
|
881
|
-
// // //token
|
|
882
|
-
// // let token = get(req, 'query.token', '')
|
|
883
|
-
|
|
884
|
-
// return 'someAPI'
|
|
885
|
-
// },
|
|
886
|
-
// },
|
|
887
856
|
|
|
888
857
|
{
|
|
889
858
|
method: 'GET',
|
|
@@ -939,7 +908,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
939
908
|
// console.log('getPerm', req)
|
|
940
909
|
|
|
941
910
|
async function core() {
|
|
942
|
-
//提供對象為node與browser使用者,
|
|
911
|
+
//提供對象為node與browser端, 須為client使用者, 須先檢測token是否有效, 再依照token取得使用者資訊物件, 再由其userId查詢回傳該使用者之權限資訊物件
|
|
943
912
|
|
|
944
913
|
//token
|
|
945
914
|
let token = get(req, 'query.token', '')
|
|
@@ -954,7 +923,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
954
923
|
return Promise.reject(`token does not have permission`)
|
|
955
924
|
}
|
|
956
925
|
|
|
957
|
-
//getAndVerifyClientUser, 發起token的所屬使用者,
|
|
926
|
+
//getAndVerifyClientUser, 發起token的所屬使用者, 驗證僅對client使用者, 不得使用app使用者
|
|
958
927
|
let userSelf = await getAndVerifyClientUser(token, 'getPerm')
|
|
959
928
|
// console.log('userSelf', userSelf)
|
|
960
929
|
|
|
@@ -1008,12 +977,12 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1008
977
|
},
|
|
1009
978
|
{
|
|
1010
979
|
method: 'GET',
|
|
1011
|
-
path: '/api/
|
|
980
|
+
path: '/api/getPermUserInfor',
|
|
1012
981
|
handler: async function (req, res) {
|
|
1013
|
-
// console.log('
|
|
982
|
+
// console.log('getPermUserInfor', req)
|
|
1014
983
|
|
|
1015
984
|
async function core() {
|
|
1016
|
-
//提供對象為node使用者,
|
|
985
|
+
//提供對象為node端, 須為app使用者, 須先檢測token是否有效, 再由其userId查詢回傳該使用者權限資訊物件
|
|
1017
986
|
|
|
1018
987
|
//tokenSelf
|
|
1019
988
|
let tokenSelf = get(req, 'query.token', '')
|
|
@@ -1022,33 +991,33 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1022
991
|
//check
|
|
1023
992
|
if (!isestr(tokenSelf)) {
|
|
1024
993
|
console.log('req.query', get(req, 'query'))
|
|
1025
|
-
console.log('tokenSelf
|
|
1026
|
-
console.log('[API]getPermById/check tokenSelf: invalid tokenSelf')
|
|
994
|
+
console.log('[API]getPermUserInfor/check tokenSelf: invalid tokenSelf')
|
|
1027
995
|
console.log(`token does not have permission`)
|
|
1028
996
|
return Promise.reject(`token does not have permission`)
|
|
1029
997
|
}
|
|
1030
998
|
|
|
1031
|
-
//
|
|
1032
|
-
let
|
|
1033
|
-
// console.log('
|
|
999
|
+
//getAndVerifyAppUser, 發起token的所屬使用者, 驗證須為app使用者
|
|
1000
|
+
let userSelf = await getAndVerifyAppUser(tokenSelf, 'getPermUserInfor')
|
|
1001
|
+
// console.log('userSelf', userSelf)
|
|
1034
1002
|
|
|
1035
1003
|
//check
|
|
1036
|
-
if (!
|
|
1004
|
+
if (!iseobj(userSelf)) {
|
|
1037
1005
|
console.log('req.query', get(req, 'query'))
|
|
1038
|
-
console.log('
|
|
1039
|
-
console.log('[API]
|
|
1006
|
+
console.log('tokenSelf', tokenSelf)
|
|
1007
|
+
console.log('[API]getPermUserInfor/check userSelf: invalid userSelf')
|
|
1040
1008
|
console.log(`token does not have permission`)
|
|
1041
1009
|
return Promise.reject(`token does not have permission`)
|
|
1042
1010
|
}
|
|
1043
1011
|
|
|
1044
|
-
//
|
|
1045
|
-
let
|
|
1046
|
-
// console.log('
|
|
1012
|
+
//userIdFind, 欲查找使用者的userId
|
|
1013
|
+
let userIdFind = get(req, 'query.userId', '')
|
|
1014
|
+
// console.log('userIdFind', userIdFind)
|
|
1047
1015
|
|
|
1048
1016
|
//check
|
|
1049
|
-
if (!
|
|
1017
|
+
if (!isestr(userIdFind)) {
|
|
1018
|
+
console.log('req.query', get(req, 'query'))
|
|
1050
1019
|
console.log('tokenSelf', tokenSelf)
|
|
1051
|
-
console.log('[API]
|
|
1020
|
+
console.log('[API]getPermUserInfor/check userIdFind: invalid userIdFind')
|
|
1052
1021
|
console.log(`token does not have permission`)
|
|
1053
1022
|
return Promise.reject(`token does not have permission`)
|
|
1054
1023
|
}
|
|
@@ -1060,7 +1029,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1060
1029
|
//check
|
|
1061
1030
|
if (!iseobj(userWithRulesFind)) {
|
|
1062
1031
|
console.log('userIdFind', userIdFind)
|
|
1063
|
-
console.log('[API]
|
|
1032
|
+
console.log('[API]getPermUserInfor/check userWithRulesFind: invalid userWithRulesFind')
|
|
1064
1033
|
console.log(`userId does not have permrules`)
|
|
1065
1034
|
return Promise.reject(`userId does not have permrules`)
|
|
1066
1035
|
}
|
|
@@ -1073,7 +1042,7 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1073
1042
|
if (isErr(r.msg)) {
|
|
1074
1043
|
r.msg = r.msg.message
|
|
1075
1044
|
}
|
|
1076
|
-
// console.log('
|
|
1045
|
+
// console.log('getPermUserInfor', r)
|
|
1077
1046
|
|
|
1078
1047
|
return r
|
|
1079
1048
|
},
|
|
@@ -1222,9 +1191,10 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
|
|
|
1222
1191
|
|
|
1223
1192
|
getWebInfor,
|
|
1224
1193
|
|
|
1225
|
-
getTargetsList,
|
|
1226
|
-
|
|
1227
|
-
|
|
1194
|
+
// getTargetsList,
|
|
1195
|
+
// getPemisList,
|
|
1196
|
+
// getGrupsList,
|
|
1197
|
+
// getUsersList,
|
|
1228
1198
|
|
|
1229
1199
|
updateTargets,
|
|
1230
1200
|
updatePemis,
|
package/src/getPerm.mjs
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
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 getPerm(url, tokenTar, opt = {}) {
|
|
10
|
+
//url: http://localhost:11006/api/getPerm?token={token}
|
|
11
|
+
let errTemp = null
|
|
12
|
+
|
|
13
|
+
//check
|
|
14
|
+
if (!isestr(url)) {
|
|
15
|
+
return Promise.reject('invalid url')
|
|
16
|
+
}
|
|
17
|
+
if (!isestr(tokenTar)) {
|
|
18
|
+
return Promise.reject('invalid tokenTar')
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//funConvertPerm
|
|
22
|
+
let funConvertPerm = get(opt, 'funConvertPerm')
|
|
23
|
+
|
|
24
|
+
//url
|
|
25
|
+
if (url.indexOf('token={token}') < 0) {
|
|
26
|
+
return Promise.reject(`no 'token={token}' in url`)
|
|
27
|
+
}
|
|
28
|
+
url = url.replaceAll('{token}', tokenTar)
|
|
29
|
+
// console.log('getPerm: 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 user by url[${url}]`)
|
|
42
|
+
return Promise.reject(`can not get user 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 user data by url[${url}]`)
|
|
61
|
+
return Promise.reject(`can not get user data by url[${url}]`) //取得使用者資訊失敗
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//ur
|
|
65
|
+
let ur = msg
|
|
66
|
+
// console.log('getPerm ur(msg)', ur)
|
|
67
|
+
|
|
68
|
+
//check
|
|
69
|
+
if (!iseobj(ur)) {
|
|
70
|
+
console.log(`no user data by url[${url}]`)
|
|
71
|
+
return Promise.reject(`no user data by url[${url}]`)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//check
|
|
75
|
+
if (isfun(funConvertPerm)) {
|
|
76
|
+
|
|
77
|
+
//funConvertPerm
|
|
78
|
+
ur = funConvertPerm(ur)
|
|
79
|
+
if (ispm(ur)) {
|
|
80
|
+
ur = await ur
|
|
81
|
+
}
|
|
82
|
+
// console.log('getPerm ur(funConvertPerm)', ur)
|
|
83
|
+
|
|
84
|
+
//check
|
|
85
|
+
if (!iseobj(ur)) {
|
|
86
|
+
console.log(`no user data after funConvertPerm`)
|
|
87
|
+
return Promise.reject(`no user data after funConvertPerm`)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return ur
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
export default getPerm
|