w-web-perm 1.0.7 → 1.0.8
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/README.md +16 -5
- package/dist/index.tmp +1 -1
- package/dist/js/{app.b07e0c72.js → app.2dee844f.js} +1 -1
- package/dist/js/{app.b07e0c72.js.map → app.2dee844f.js.map} +1 -1
- package/dist/js/{chunk-vendors-legacy.e40e3bd7.js → chunk-vendors-legacy.02559087.js} +2 -2
- package/dist/js/chunk-vendors-legacy.02559087.js.map +1 -0
- package/dist/js/{chunk-vendors.e40e3bd7.js → chunk-vendors.02559087.js} +2 -2
- package/dist/js/chunk-vendors.02559087.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 +42 -6
- package/docs/WWebPerm.mjs.html +89 -44
- package/docs/index.html +1 -1
- package/package.json +2 -2
- package/server/WWebPerm.mjs +88 -43
- package/srv.mjs +11 -3
- package/dist/js/chunk-vendors-legacy.e40e3bd7.js.map +0 -1
- package/dist/js/chunk-vendors.e40e3bd7.js.map +0 -1
package/docs/WWebPerm.html
CHANGED
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
<h4 class="name" id="WWebPerm"><span class="type-signature"></span>new WWebPerm<span class="signature">(WOrm, url, db, getUserByToken,
|
|
67
|
+
<h4 class="name" id="WWebPerm"><span class="type-signature"></span>new WWebPerm<span class="signature">(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h4>
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
|
|
81
81
|
<dt class="tag-source">Source:</dt>
|
|
82
82
|
<dd class="tag-source"><ul class="dummy"><li>
|
|
83
|
-
<a href="WWebPerm.mjs.html">WWebPerm.mjs</a>, <a href="WWebPerm.mjs.html#
|
|
83
|
+
<a href="WWebPerm.mjs.html">WWebPerm.mjs</a>, <a href="WWebPerm.mjs.html#line128">line 128</a>
|
|
84
84
|
</li></ul></dd>
|
|
85
85
|
|
|
86
86
|
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
|
|
128
128
|
<h5 class="h5-examples">Example</h5>
|
|
129
129
|
|
|
130
|
-
<pre class="prettyprint"><code>import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
|
|
131
130
|
bCheckUser: false,
|
|
132
131
|
getUserById: null,
|
|
133
132
|
bExcludeWhenNotAdmin: false,
|
|
134
133
|
serverPort: 11006,
|
|
135
134
|
subfolder: '', //mperm
|
|
136
135
|
webName: {
|
|
137
136
|
'eng': 'Permission Service',
|
|
138
137
|
'cht': '權限管理系統',
|
|
139
138
|
},
|
|
140
139
|
webDescription: {
|
|
141
140
|
'eng': 'A web service package for user permissions and management targets.',
|
|
142
141
|
'cht': 'A web service package for user permissions and management targets.',
|
|
143
142
|
},
|
|
144
143
|
webLogo: 'data:image/svg+xml;base64,...',
|
|
145
144
|
// return {} //測試無法登入
|
|
146
145
|
if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
|
|
147
146
|
return {
|
|
148
147
|
id: 'id-for-application',
|
|
149
148
|
name: 'application',
|
|
150
149
|
email: 'admin@example.com',
|
|
151
150
|
isAdmin: 'y',
|
|
152
151
|
}
|
|
153
152
|
}
|
|
154
153
|
if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
|
|
155
154
|
return {
|
|
156
155
|
id: 'id-for-admin',
|
|
157
156
|
name: 'tester',
|
|
158
157
|
email: 'admin@example.com',
|
|
159
158
|
isAdmin: 'y',
|
|
160
159
|
}
|
|
161
160
|
}
|
|
162
161
|
console.log('invalid token', token)
|
|
163
162
|
console.log('於生產環境時得加入SSO等驗證token機制')
|
|
164
163
|
return {}
|
|
165
164
|
console.log('於生產環境時得加入驗證user機制')
|
|
166
165
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
167
166
|
console.log(err)
|
|
167
|
+
<pre class="prettyprint"><code>import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
|
|
168
168
|
bCheckUser: false,
|
|
169
169
|
getUserById: null,
|
|
170
170
|
bExcludeWhenNotAdmin: false,
|
|
171
171
|
serverPort: 11006,
|
|
172
172
|
subfolder: '', //mperm
|
|
173
173
|
urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11006/
|
|
174
174
|
webName: {
|
|
175
175
|
'eng': 'Permission Service',
|
|
176
176
|
'cht': '權限管理系統',
|
|
177
177
|
},
|
|
178
178
|
webDescription: {
|
|
179
179
|
'eng': 'A web service package for user permissions and management targets.',
|
|
180
180
|
'cht': 'A web service package for user permissions and management targets.',
|
|
181
181
|
},
|
|
182
182
|
webLogo: 'data:image/svg+xml;base64,...',
|
|
183
183
|
// return {} //測試無法登入
|
|
184
184
|
if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
|
|
185
185
|
return {
|
|
186
186
|
id: 'id-for-application',
|
|
187
187
|
name: 'application',
|
|
188
188
|
email: 'application@example.com',
|
|
189
189
|
isAdmin: 'y',
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
|
|
193
193
|
return {
|
|
194
194
|
id: 'id-for-admin',
|
|
195
195
|
name: 'tester',
|
|
196
196
|
email: 'admin@example.com', //mappingBy為email, 開發階段時會使用email找到所建置之使用者資料
|
|
197
197
|
isAdmin: 'y',
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
console.log('invalid token', token)
|
|
201
201
|
console.log('於生產環境時得加入SSO等驗證token機制')
|
|
202
202
|
return {}
|
|
203
203
|
console.log('verifyBrowserUser/user', user)
|
|
204
204
|
// return false //測試無法登入
|
|
205
205
|
console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
206
206
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
207
207
|
console.log('verifyAppUser/user', user)
|
|
208
208
|
// return false //測試無法登入
|
|
209
209
|
console.log('於生產環境時得加入限制應用程式使用者身份機制')
|
|
210
210
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
211
211
|
console.log(err)
|
|
212
212
|
|
|
213
213
|
|
|
214
214
|
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
|
|
306
306
|
<tr>
|
|
307
307
|
|
|
308
|
-
<td class="name"><code>
|
|
308
|
+
<td class="name"><code>verifyBrowserUser</code></td>
|
|
309
309
|
|
|
310
310
|
|
|
311
311
|
<td class="type">
|
|
@@ -334,7 +334,43 @@
|
|
|
334
334
|
</td>
|
|
335
335
|
|
|
336
336
|
|
|
337
|
-
<td class="description last"><p
|
|
337
|
+
<td class="description last"><p>輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false</p></td>
|
|
338
|
+
</tr>
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
<tr>
|
|
343
|
+
|
|
344
|
+
<td class="name"><code>verifyAppUser</code></td>
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
<td class="type">
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
<span class="param-type">function</span>
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
</td>
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
<td class="attributes">
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
</td>
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
<td class="default">
|
|
369
|
+
|
|
370
|
+
</td>
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
<td class="description last"><p>輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false</p></td>
|
|
338
374
|
</tr>
|
|
339
375
|
|
|
340
376
|
|
|
@@ -889,7 +925,7 @@
|
|
|
889
925
|
<br class="clear">
|
|
890
926
|
|
|
891
927
|
<footer>
|
|
892
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
928
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Nov 03 2023 12:07:17 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
893
929
|
</footer>
|
|
894
930
|
|
|
895
931
|
<script>prettyPrint();</script>
|
package/docs/WWebPerm.mjs.html
CHANGED
|
@@ -79,7 +79,8 @@ import { getUserRules } from '../src/plugins/mShare.mjs'
|
|
|
79
79
|
* @param {String} url 輸入資料庫連線字串,例如'mongodb://sername:password@$127.0.0.1:27017'
|
|
80
80
|
* @param {String} db 輸入資料庫名稱字串
|
|
81
81
|
* @param {Function} getUserByToken 輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值
|
|
82
|
-
* @param {Function}
|
|
82
|
+
* @param {Function} verifyBrowserUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
83
|
+
* @param {Function} verifyAppUser 輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
83
84
|
* @param {Object} [opt={}] 輸入設定物件,預設{}
|
|
84
85
|
* @param {Integer} [opt.serverPort=11006] 輸入伺服器通訊port,預設11006
|
|
85
86
|
* @param {Boolean} [opt.bCheckUser=false] 輸入是否檢查使用者資訊布林值,預設false
|
|
@@ -93,10 +94,12 @@ import { getUserRules } from '../src/plugins/mShare.mjs'
|
|
|
93
94
|
* @param {String} [opt.mappingBy='email'] 輸入外部系統識別使用者token後所提供之資料物件,與權限系統之使用者資料物件,兩者間查找之對應欄位,可選'id'、'email'、'name',預設'email'
|
|
94
95
|
* @returns {Object} 回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件
|
|
95
96
|
* @example
|
|
97
|
+
*
|
|
96
98
|
* import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
|
|
97
99
|
* import WWebPerm from './server/WWebPerm.mjs'
|
|
98
100
|
* import getSettings from './g.getSettings.mjs'
|
|
99
101
|
*
|
|
102
|
+
*
|
|
100
103
|
* //st
|
|
101
104
|
* let st = getSettings()
|
|
102
105
|
*
|
|
@@ -110,6 +113,7 @@ import { getUserRules } from '../src/plugins/mShare.mjs'
|
|
|
110
113
|
*
|
|
111
114
|
* serverPort: 11006,
|
|
112
115
|
* subfolder: '', //mperm
|
|
116
|
+
* urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11006/
|
|
113
117
|
*
|
|
114
118
|
* webName: {
|
|
115
119
|
* 'eng': 'Permission Service',
|
|
@@ -129,7 +133,7 @@ import { getUserRules } from '../src/plugins/mShare.mjs'
|
|
|
129
133
|
* return {
|
|
130
134
|
* id: 'id-for-application',
|
|
131
135
|
* name: 'application',
|
|
132
|
-
* email: '
|
|
136
|
+
* email: 'application@example.com',
|
|
133
137
|
* isAdmin: 'y',
|
|
134
138
|
* }
|
|
135
139
|
* }
|
|
@@ -137,7 +141,7 @@ import { getUserRules } from '../src/plugins/mShare.mjs'
|
|
|
137
141
|
* return {
|
|
138
142
|
* id: 'id-for-admin',
|
|
139
143
|
* name: 'tester',
|
|
140
|
-
* email: 'admin@example.com',
|
|
144
|
+
* email: 'admin@example.com', //mappingBy為email, 開發階段時會使用email找到所建置之使用者資料
|
|
141
145
|
* isAdmin: 'y',
|
|
142
146
|
* }
|
|
143
147
|
* }
|
|
@@ -146,20 +150,29 @@ import { getUserRules } from '../src/plugins/mShare.mjs'
|
|
|
146
150
|
* return {}
|
|
147
151
|
* }
|
|
148
152
|
*
|
|
149
|
-
* let
|
|
150
|
-
* console.log('
|
|
153
|
+
* let verifyBrowserUser = (user, caller) => {
|
|
154
|
+
* console.log('verifyBrowserUser/user', user)
|
|
155
|
+
* // return false //測試無法登入
|
|
156
|
+
* console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
157
|
+
* return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
158
|
+
* }
|
|
159
|
+
*
|
|
160
|
+
* let verifyAppUser = (user, caller) => {
|
|
161
|
+
* console.log('verifyAppUser/user', user)
|
|
162
|
+
* // return false //測試無法登入
|
|
163
|
+
* console.log('於生產環境時得加入限制應用程式使用者身份機制')
|
|
151
164
|
* return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
152
165
|
* }
|
|
153
166
|
*
|
|
154
167
|
* //WWebPerm
|
|
155
|
-
* let instWWebPerm = WWebPerm(WOrm, url, db, getUserByToken,
|
|
168
|
+
* let instWWebPerm = WWebPerm(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt)
|
|
156
169
|
*
|
|
157
170
|
* instWWebPerm.on('error', (err) => {
|
|
158
171
|
* console.log(err)
|
|
159
172
|
* })
|
|
160
173
|
*
|
|
161
174
|
*/
|
|
162
|
-
function WWebPerm(WOrm, url, db, getUserByToken,
|
|
175
|
+
function WWebPerm(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt = {}) {
|
|
163
176
|
let instWServHapiServer = null
|
|
164
177
|
|
|
165
178
|
|
|
@@ -191,10 +204,17 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
191
204
|
}
|
|
192
205
|
|
|
193
206
|
|
|
194
|
-
//check
|
|
195
|
-
if (!isfun(
|
|
196
|
-
console.log('invalid
|
|
197
|
-
throw new Error('invalid
|
|
207
|
+
//check verifyBrowserUser
|
|
208
|
+
if (!isfun(verifyBrowserUser)) {
|
|
209
|
+
console.log('invalid verifyBrowserUser', verifyBrowserUser)
|
|
210
|
+
throw new Error('invalid verifyBrowserUser')
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
//check verifyAppUser
|
|
215
|
+
if (!isfun(verifyAppUser)) {
|
|
216
|
+
console.log('invalid verifyAppUser', verifyAppUser)
|
|
217
|
+
throw new Error('invalid verifyAppUser')
|
|
198
218
|
}
|
|
199
219
|
|
|
200
220
|
|
|
@@ -312,8 +332,8 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
312
332
|
}
|
|
313
333
|
|
|
314
334
|
|
|
315
|
-
//
|
|
316
|
-
let
|
|
335
|
+
//getTokenUser
|
|
336
|
+
let getTokenUser = async(token) => {
|
|
317
337
|
|
|
318
338
|
//userSelf
|
|
319
339
|
let userSelf = null
|
|
@@ -394,8 +414,18 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
394
414
|
}
|
|
395
415
|
// console.log('userFind(isAdmin)', userFind)
|
|
396
416
|
|
|
397
|
-
|
|
398
|
-
|
|
417
|
+
return userFind
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
//getAndVerifyBrowserTokenUser
|
|
422
|
+
let getAndVerifyBrowserTokenUser = async (token, caller = '') => {
|
|
423
|
+
|
|
424
|
+
//getTokenUser
|
|
425
|
+
let userSelf = await getTokenUser(token)
|
|
426
|
+
|
|
427
|
+
//verifyBrowserUser
|
|
428
|
+
let b = verifyBrowserUser(userSelf, caller)
|
|
399
429
|
if (ispm(b)) {
|
|
400
430
|
b = await b
|
|
401
431
|
}
|
|
@@ -403,12 +433,34 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
403
433
|
//check
|
|
404
434
|
if (!b) {
|
|
405
435
|
console.log('userSelf', userSelf)
|
|
406
|
-
console.log(
|
|
407
|
-
console.log('user does not have permission')
|
|
436
|
+
console.log(`user does not have permission`)
|
|
408
437
|
return Promise.reject(`user does not have permission`)
|
|
409
438
|
}
|
|
410
439
|
|
|
411
|
-
return
|
|
440
|
+
return userSelf
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
//getAndVerifyAppTokenUser
|
|
445
|
+
let getAndVerifyAppTokenUser = async (token, caller = '') => {
|
|
446
|
+
|
|
447
|
+
//getTokenUser
|
|
448
|
+
let userSelf = await getTokenUser(token)
|
|
449
|
+
|
|
450
|
+
//verifyAppUser
|
|
451
|
+
let b = verifyAppUser(userSelf, caller)
|
|
452
|
+
if (ispm(b)) {
|
|
453
|
+
b = await b
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
//check
|
|
457
|
+
if (!b) {
|
|
458
|
+
console.log('userSelf', userSelf)
|
|
459
|
+
console.log(`user does not have permission`)
|
|
460
|
+
return Promise.reject(`user does not have permission`)
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
return userSelf
|
|
412
464
|
}
|
|
413
465
|
|
|
414
466
|
|
|
@@ -636,14 +688,14 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
636
688
|
// console.log('getUserByToken', req)
|
|
637
689
|
|
|
638
690
|
async function core() {
|
|
639
|
-
//提供對象為browser使用者,
|
|
691
|
+
//提供對象為browser使用者, 須先檢測token是否有效, 確認後回傳該使用者之資訊物件
|
|
640
692
|
|
|
641
693
|
//token
|
|
642
694
|
let token = get(req, 'query.token', '')
|
|
643
695
|
// console.log('token', token)
|
|
644
696
|
|
|
645
|
-
//
|
|
646
|
-
let userSelf = await
|
|
697
|
+
//getAndVerifyBrowserTokenUser
|
|
698
|
+
let userSelf = await getAndVerifyBrowserTokenUser(token)
|
|
647
699
|
// console.log('userSelf', userSelf)
|
|
648
700
|
|
|
649
701
|
//check
|
|
@@ -654,11 +706,6 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
654
706
|
return Promise.reject(`token does not have permission`)
|
|
655
707
|
}
|
|
656
708
|
|
|
657
|
-
// //check
|
|
658
|
-
// if (get(userSelf, 'isAdmin') !== 'y') { //權限系統須系統管理員才能使用
|
|
659
|
-
// return Promise.reject(`user does not have permission`)
|
|
660
|
-
// }
|
|
661
|
-
|
|
662
709
|
return userSelf
|
|
663
710
|
}
|
|
664
711
|
|
|
@@ -676,14 +723,14 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
676
723
|
// console.log('getPerm', req)
|
|
677
724
|
|
|
678
725
|
async function core() {
|
|
679
|
-
//提供對象為node與browser使用者, 須先檢測token是否有效, 再依照token取得使用者資訊物件, 再由其userId
|
|
726
|
+
//提供對象為node與browser使用者, node實際也為轉發之browser使用者, 須先檢測token是否有效, 再依照token取得使用者資訊物件, 再由其userId查詢回傳該使用者之權限資訊物件
|
|
680
727
|
|
|
681
728
|
//parseToken
|
|
682
729
|
let token = parseToken(req)
|
|
683
730
|
// console.log('token', token)
|
|
684
731
|
|
|
685
|
-
//
|
|
686
|
-
let userLogin = await
|
|
732
|
+
//getAndVerifyBrowserTokenUser
|
|
733
|
+
let userLogin = await getAndVerifyBrowserTokenUser(token)
|
|
687
734
|
// console.log('userLogin', userLogin)
|
|
688
735
|
|
|
689
736
|
//check
|
|
@@ -735,14 +782,14 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
735
782
|
// console.log('getPermById', req)
|
|
736
783
|
|
|
737
784
|
async function core() {
|
|
738
|
-
//提供對象為node使用者,
|
|
785
|
+
//提供對象為node使用者, 須為系統管理者, 須先檢測token是否有效, 再由query取得欲查詢的使用者userId, 再由其userId查詢回傳該使用者權限資訊物件
|
|
739
786
|
|
|
740
787
|
//token
|
|
741
788
|
let token = get(req, 'query.token', '')
|
|
742
789
|
// console.log('token', token)
|
|
743
790
|
|
|
744
|
-
//
|
|
745
|
-
let userSelf = await
|
|
791
|
+
//getAndVerifyAppTokenUser
|
|
792
|
+
let userSelf = await getAndVerifyAppTokenUser(token, 'getPermById')
|
|
746
793
|
// console.log('userSelf', userSelf)
|
|
747
794
|
|
|
748
795
|
//check
|
|
@@ -753,11 +800,6 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
753
800
|
return Promise.reject(`token does not have permission`)
|
|
754
801
|
}
|
|
755
802
|
|
|
756
|
-
// //check
|
|
757
|
-
// if (get(userSelf, 'isAdmin') !== 'y') { //權限系統須系統管理員才能使用
|
|
758
|
-
// return Promise.reject(`user does not have permission`)
|
|
759
|
-
// }
|
|
760
|
-
|
|
761
803
|
//userId
|
|
762
804
|
let userId = get(req, 'query.userId', '')
|
|
763
805
|
// console.log('userId', userId)
|
|
@@ -792,12 +834,13 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
792
834
|
// console.log('payload', req.payload)
|
|
793
835
|
|
|
794
836
|
async function core() {
|
|
837
|
+
//提供對象為node使用者, 須為系統管理者, 須先檢測token是否有效, 再進行數據變更
|
|
795
838
|
|
|
796
839
|
//token
|
|
797
840
|
let token = get(req, 'query.token', '')
|
|
798
841
|
|
|
799
|
-
//
|
|
800
|
-
let user = await
|
|
842
|
+
//getAndVerifyAppTokenUser
|
|
843
|
+
let user = await getAndVerifyAppTokenUser(token, 'syncAndReplaceUsers')
|
|
801
844
|
|
|
802
845
|
//check
|
|
803
846
|
if (!iseobj(user)) {
|
|
@@ -831,12 +874,13 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
831
874
|
// console.log('payload', req.payload)
|
|
832
875
|
|
|
833
876
|
async function core() {
|
|
877
|
+
//提供對象為node使用者, 須為系統管理者, 須先檢測token是否有效, 再進行數據變更
|
|
834
878
|
|
|
835
879
|
//token
|
|
836
880
|
let token = get(req, 'query.token', '')
|
|
837
881
|
|
|
838
|
-
//
|
|
839
|
-
let user = await
|
|
882
|
+
//getAndVerifyAppTokenUser
|
|
883
|
+
let user = await getAndVerifyAppTokenUser(token, 'syncAndReplaceTargets')
|
|
840
884
|
|
|
841
885
|
//check
|
|
842
886
|
if (!iseobj(user)) {
|
|
@@ -870,12 +914,13 @@ function WWebPerm(WOrm, url, db, getUserByToken, verifyUser, opt = {}) {
|
|
|
870
914
|
// console.log('payload', req.payload)
|
|
871
915
|
|
|
872
916
|
async function core() {
|
|
917
|
+
//提供對象為node使用者, 須為系統管理者, 須先檢測token是否有效, 再進行數據變更
|
|
873
918
|
|
|
874
919
|
//token
|
|
875
920
|
let token = get(req, 'query.token', '')
|
|
876
921
|
|
|
877
|
-
//
|
|
878
|
-
let user = await
|
|
922
|
+
//getAndVerifyAppTokenUser
|
|
923
|
+
let user = await getAndVerifyAppTokenUser(token, 'syncAndReplaceRuleGroups')
|
|
879
924
|
|
|
880
925
|
//check
|
|
881
926
|
if (!iseobj(user)) {
|
|
@@ -958,7 +1003,7 @@ export default WWebPerm
|
|
|
958
1003
|
<br class="clear">
|
|
959
1004
|
|
|
960
1005
|
<footer>
|
|
961
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
1006
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Nov 03 2023 12:07:17 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
962
1007
|
</footer>
|
|
963
1008
|
|
|
964
1009
|
<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.2</a> on
|
|
74
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Nov 03 2023 12:07:17 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.8",
|
|
4
4
|
"main": "dist/w-web-perm.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@mdi/js": "^7.2.96",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"w-data-collector": "^1.0.19",
|
|
13
13
|
"w-serv-hapi": "^1.0.11",
|
|
14
14
|
"w-serv-orm": "^1.0.7",
|
|
15
|
-
"w-ui-loginout": "^1.0.
|
|
15
|
+
"w-ui-loginout": "^1.0.5",
|
|
16
16
|
"wsemi": "^1.7.38"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|