w-web-sso 1.0.21 → 1.0.22

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * w-web-sso v1.0.21
2
+ * w-web-sso v1.0.22
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
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 Mon Jul 14 2025 15:01:15 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
390
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Wed Jul 23 2025 12:37:39 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
391
391
  </footer>
392
392
 
393
393
  <script>prettyPrint();</script>
@@ -566,13 +566,13 @@ function WWebSso(WOrm, url, db, pathSettings) {
566
566
  // return Promise.reject(`invalid ${key} from inp`)
567
567
  // }
568
568
 
569
- // //resave
570
- // inp = {
569
+ // //r
570
+ // let r = {
571
571
  // from,
572
572
  // [key]: vs,
573
573
  // }
574
574
 
575
- // return inp
575
+ // return r
576
576
  // }
577
577
 
578
578
 
@@ -1177,7 +1177,7 @@ export default WWebSso
1177
1177
  <br class="clear">
1178
1178
 
1179
1179
  <footer>
1180
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Mon Jul 14 2025 15:01:15 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1180
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Wed Jul 23 2025 12:37:39 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1181
1181
  </footer>
1182
1182
 
1183
1183
  <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 14 2025 15:01:15 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 Wed Jul 23 2025 12:37:39 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
@@ -1,38 +1,39 @@
1
1
  import map from 'lodash-es/map.js'
2
2
  import ds from './src/schema/index.mjs'
3
- import provideUsers from './server/provideUsers.mjs'
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
- ['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 provideUsers(url, from, rs)
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.provideUsers.mjs
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.21",
3
+ "version": "1.0.22",
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
- "w-ui-loginout": "^1.0.9",
16
- "wsemi": "^1.8.15"
15
+ "wsemi": "^1.8.16"
17
16
  },
18
17
  "devDependencies": {
19
18
  "@vue/cli-plugin-babel": "^5.0.8",
@@ -519,13 +519,13 @@ function WWebSso(WOrm, url, db, pathSettings) {
519
519
  // return Promise.reject(`invalid ${key} from inp`)
520
520
  // }
521
521
 
522
- // //resave
523
- // inp = {
522
+ // //r
523
+ // let r = {
524
524
  // from,
525
525
  // [key]: vs,
526
526
  // }
527
527
 
528
- // return inp
528
+ // return r
529
529
  // }
530
530
 
531
531
 
@@ -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/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,89 @@
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
+ throw new Error('invalid url')
16
+ }
17
+ if (!isestr(tokenSelf)) {
18
+ throw new Error('invalid tokenSelf')
19
+ }
20
+ if (!isestr(tokenTar)) {
21
+ throw new Error('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
+ //funConvertUser
77
+ if (isfun(funConvertUser)) {
78
+ u = funConvertUser(u)
79
+ if (ispm(u)) {
80
+ u = await u
81
+ }
82
+ // console.log('getUserByToken u(funConvertUser)', u)
83
+ }
84
+
85
+ return u
86
+ }
87
+
88
+
89
+ export default getUserByToken
@@ -0,0 +1,89 @@
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 isfun from 'wsemi/src/isfun.mjs'
6
+ import ispm from 'wsemi/src/ispm.mjs'
7
+ import pmSeries from 'wsemi/src/pmSeries.mjs'
8
+
9
+
10
+ async function getUsersByToken(url, tokenSelf, opt = {}) {
11
+ //url: http://localhost:11007/api/getSsoUsersList
12
+ let errTemp = null
13
+
14
+ //check
15
+ if (!isestr(url)) {
16
+ throw new Error('invalid url')
17
+ }
18
+ if (!isestr(tokenSelf)) {
19
+ throw new Error('invalid tokenSelf')
20
+ }
21
+
22
+ //funConvertUser
23
+ let funConvertUser = get(opt, 'funConvertUser')
24
+
25
+ //url
26
+ url = `${url}?token={sysToken}`
27
+ url = url.replaceAll('{sysToken}', tokenSelf) //系統介接用ssoToken
28
+ // console.log('getUsersByToken: url', url)
29
+
30
+ //get
31
+ let res = await axios.get(url)
32
+ .catch((err) => {
33
+ errTemp = err.toString()
34
+ })
35
+
36
+ //check
37
+ if (errTemp !== null) {
38
+ console.log('res', res)
39
+ console.log('errTemp', errTemp)
40
+ console.log(`can not get users by url[${url}]`)
41
+ return Promise.reject(`can not get users by url[${url}]`) //由SSO取得使用者清單資訊錯誤
42
+ }
43
+
44
+ //data
45
+ let data = get(res, 'data')
46
+
47
+ //state
48
+ let state = get(data, 'state', '')
49
+
50
+ //msg
51
+ let msg = get(data, 'msg')
52
+
53
+ //check
54
+ if (state !== 'success') {
55
+ console.log('res', res)
56
+ console.log('data', data)
57
+ console.log('state', state)
58
+ console.log('errTemp', msg)
59
+ console.log(`can not get users data by url[${url}]`)
60
+ return Promise.reject(`can not get users data by url[${url}]`) //取得使用者清單資訊失敗
61
+ }
62
+
63
+ //us
64
+ let us = msg
65
+ // console.log('getUsersByToken us(msg)', us)
66
+
67
+ //check
68
+ if (size(us) === 0) {
69
+ console.log(`no users data by url[${url}]`)
70
+ return Promise.reject(`no users data by url[${url}]`)
71
+ }
72
+
73
+ //funConvertUser
74
+ if (isfun(funConvertUser)) {
75
+ us = await pmSeries(us, async(u) => {
76
+ u = funConvertUser(u)
77
+ if (ispm(u)) {
78
+ u = await u
79
+ }
80
+ return u
81
+ })
82
+ // console.log('getUsersByToken us(funConvertUser)', us)
83
+ }
84
+
85
+ return us
86
+ }
87
+
88
+
89
+ export default getUsersByToken