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.
@@ -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 Mon Jul 21 2025 14:55:43 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
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>
@@ -363,25 +363,32 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
363
363
  }
364
364
 
365
365
 
366
- //getUsersList
367
- let getUsersList = async (userId) => {
368
- let rs = await woItems.users.select() //isActive為y或n都需要提供, 給前端編輯
369
- return rs
370
- }
366
+ // //getTargetsList
367
+ // let getTargetsList = async (userId) => {
368
+ // let rs = await woItems.targets.select()
369
+ // return rs
370
+ // }
371
371
 
372
372
 
373
- //getRuleGroupsList
374
- let getRuleGroupsList = async (userId) => {
375
- let rs = await woItems.pemis.select()
376
- return rs
377
- }
373
+ // //getPemisList
374
+ // let getPemisList = async (userId) => {
375
+ // let rs = await woItems.pemis.select()
376
+ // return rs
377
+ // }
378
378
 
379
379
 
380
- //getTargetsList
381
- let getTargetsList = async (userId) => {
382
- let rs = await woItems.targets.select()
383
- return rs
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
- if (true) {
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' &amp;&amp; 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使用者, 提供對象有node是因為幫忙轉發其他系統browser使用者驗證需求, 皆須先檢測token是否有效, 再依照token取得使用者資訊物件, 再由其userId查詢回傳該使用者之權限資訊物件
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的所屬使用者, 驗證須為client使用者
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/getPermById',
1027
+ path: '/api/getPermUserInfor',
1059
1028
  handler: async function (req, res) {
1060
- // console.log('getPermById', req)
1029
+ // console.log('getPermUserInfor', req)
1061
1030
 
1062
1031
  async function core() {
1063
- //提供對象為node使用者, 須為系統管理者, 須先檢測token是否有效, 再由query取得欲查詢的使用者userId, 再由其userId查詢回傳該使用者權限資訊物件
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', 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
- //userIdFind, 欲查找使用者的userId
1079
- let userIdFind = get(req, 'query.userId', '')
1080
- // console.log('userIdFind', userIdFind)
1046
+ //getAndVerifyAppUser, 發起token的所屬使用者, 驗證須為app使用者
1047
+ let userSelf = await getAndVerifyAppUser(tokenSelf, 'getPermUserInfor')
1048
+ // console.log('userSelf', userSelf)
1081
1049
 
1082
1050
  //check
1083
- if (!isestr(userIdFind)) {
1051
+ if (!iseobj(userSelf)) {
1084
1052
  console.log('req.query', get(req, 'query'))
1085
- console.log('userIdFind', userIdFind)
1086
- console.log('[API]getPermById/check userIdFind: invalid userIdFind')
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
- //getAndVerifyAppUser, 發起token的所屬使用者, 驗證須為app使用者
1092
- let userSelf = await getAndVerifyAppUser(tokenSelf, 'getPermById')
1093
- // console.log('userSelf', userSelf)
1059
+ //userIdFind, 欲查找使用者的userId
1060
+ let userIdFind = get(req, 'query.userId', '')
1061
+ // console.log('userIdFind', userIdFind)
1094
1062
 
1095
1063
  //check
1096
- if (!iseobj(userSelf)) {
1064
+ if (!isestr(userIdFind)) {
1065
+ console.log('req.query', get(req, 'query'))
1097
1066
  console.log('tokenSelf', tokenSelf)
1098
- console.log('[API]getPermById/check userSelf: invalid userSelf')
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]getPermById/check userWithRulesFind: invalid userWithRulesFind')
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('getPermById', r)
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
- getRuleGroupsList,
1274
- getUsersList,
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 Mon Jul 21 2025 14:55:43 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
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 Mon Jul 21 2025 14:55:43 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
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.36",
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.9",
16
- "wsemi": "^1.8.15"
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",
@@ -316,25 +316,32 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser
316
316
  }
317
317
 
318
318
 
319
- //getUsersList
320
- let getUsersList = async (userId) => {
321
- let rs = await woItems.users.select() //isActive為y或n都需要提供, 給前端編輯
322
- return rs
323
- }
319
+ // //getTargetsList
320
+ // let getTargetsList = async (userId) => {
321
+ // let rs = await woItems.targets.select()
322
+ // return rs
323
+ // }
324
324
 
325
325
 
326
- //getRuleGroupsList
327
- let getRuleGroupsList = async (userId) => {
328
- let rs = await woItems.pemis.select()
329
- return rs
330
- }
326
+ // //getPemisList
327
+ // let getPemisList = async (userId) => {
328
+ // let rs = await woItems.pemis.select()
329
+ // return rs
330
+ // }
331
331
 
332
332
 
333
- //getTargetsList
334
- let getTargetsList = async (userId) => {
335
- let rs = await woItems.targets.select()
336
- return rs
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
- if (true) {
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使用者, 提供對象有node是因為幫忙轉發其他系統browser使用者驗證需求, 皆須先檢測token是否有效, 再依照token取得使用者資訊物件, 再由其userId查詢回傳該使用者之權限資訊物件
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的所屬使用者, 驗證須為client使用者
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/getPermById',
980
+ path: '/api/getPermUserInfor',
1012
981
  handler: async function (req, res) {
1013
- // console.log('getPermById', req)
982
+ // console.log('getPermUserInfor', req)
1014
983
 
1015
984
  async function core() {
1016
- //提供對象為node使用者, 須為系統管理者, 須先檢測token是否有效, 再由query取得欲查詢的使用者userId, 再由其userId查詢回傳該使用者權限資訊物件
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', 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
- //userIdFind, 欲查找使用者的userId
1032
- let userIdFind = get(req, 'query.userId', '')
1033
- // console.log('userIdFind', userIdFind)
999
+ //getAndVerifyAppUser, 發起token的所屬使用者, 驗證須為app使用者
1000
+ let userSelf = await getAndVerifyAppUser(tokenSelf, 'getPermUserInfor')
1001
+ // console.log('userSelf', userSelf)
1034
1002
 
1035
1003
  //check
1036
- if (!isestr(userIdFind)) {
1004
+ if (!iseobj(userSelf)) {
1037
1005
  console.log('req.query', get(req, 'query'))
1038
- console.log('userIdFind', userIdFind)
1039
- console.log('[API]getPermById/check userIdFind: invalid userIdFind')
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
- //getAndVerifyAppUser, 發起token的所屬使用者, 驗證須為app使用者
1045
- let userSelf = await getAndVerifyAppUser(tokenSelf, 'getPermById')
1046
- // console.log('userSelf', userSelf)
1012
+ //userIdFind, 欲查找使用者的userId
1013
+ let userIdFind = get(req, 'query.userId', '')
1014
+ // console.log('userIdFind', userIdFind)
1047
1015
 
1048
1016
  //check
1049
- if (!iseobj(userSelf)) {
1017
+ if (!isestr(userIdFind)) {
1018
+ console.log('req.query', get(req, 'query'))
1050
1019
  console.log('tokenSelf', tokenSelf)
1051
- console.log('[API]getPermById/check userSelf: invalid userSelf')
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]getPermById/check userWithRulesFind: invalid userWithRulesFind')
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('getPermById', r)
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
- getRuleGroupsList,
1227
- getUsersList,
1194
+ // getTargetsList,
1195
+ // getPemisList,
1196
+ // getGrupsList,
1197
+ // getUsersList,
1228
1198
 
1229
1199
  updateTargets,
1230
1200
  updatePemis,
@@ -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