w-web-perm 1.0.48 → 1.0.50
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/.github/workflows/ci-test.yml +2 -2
- package/README.md +5 -5
- package/dist/css/app.8781355a.css +1 -0
- package/dist/css/{chunk-vendors.f149e124.css → chunk-vendors.58917286.css} +1 -1
- package/dist/index.tmp +2 -2
- package/dist/js/app-legacy.b2754bb1.js +1 -0
- package/dist/js/app.b2754bb1.js +1 -0
- package/dist/js/chunk-vendors-legacy.c14a1ed1.js +21 -0
- package/dist/js/chunk-vendors.c14a1ed1.js +21 -0
- package/dist/w-web-perm.umd.js +2 -2
- package/dist/w-web-perm.umd.js.map +1 -1
- package/docs/WWebPerm.html +3 -3
- package/docs/WWebPerm.mjs.html +162 -210
- package/docs/index.html +1 -1
- package/logs/2026-06-19T16.log +191 -0
- package/logs/2026-06-19T23.log +0 -0
- package/logs/2026-06-20T00.log +207 -0
- package/logs/2026-06-20T11.log +221 -0
- package/logs/2026-06-20T12.log +146 -0
- package/logs/2026-06-20T13.log +134 -0
- package/logs/2026-06-20T14.log +296 -0
- package/logs/2026-06-20T15.log +225 -0
- package/logs/2026-06-20T16.log +174 -0
- package/logs/2026-06-21T16.log +110 -0
- package/logs/2026-06-21T17.log +301 -0
- package/logs/2026-06-21T18.log +238 -0
- package/logs/2026-06-21T19.log +141 -0
- package/logs/2026-06-21T20.log +99 -0
- package/logs/2026-06-21T21.log +143 -0
- package/logs/2026-06-21T23.log +26 -0
- package/logs/2026-06-22T00.log +33 -0
- package/logs/2026-06-22T08.log +235 -0
- package/logs/2026-06-22T09.log +246 -0
- package/logs/2026-06-22T10.log +301 -0
- package/logs/2026-06-22T11.log +140 -0
- package/logs/2026-06-22T12.log +22 -0
- package/logs/2026-06-22T14.log +44 -0
- package/logs/2026-06-22T23.log +951 -0
- package/logs/2026-06-23T00.log +263 -0
- package/logs/2026-06-23T08.log +611 -0
- package/logs/2026-06-30T21.log +3609 -0
- package/logs/2026-06-30T22.log +3682 -0
- package/logs/2026-06-30T23.log +592 -0
- package/logs/2026-07-01T12.log +0 -0
- package/logs/2026-07-09T22.log +2220 -0
- package/logs/2026-07-09T23.log +1140 -0
- package/logs/2026-07-10T12.log +6 -0
- package/logs/2026-07-10T13.log +351 -0
- package/logs/2026-07-10T16.log +1272 -0
- package/logs/2026-07-10T19.log +6 -0
- package/logs/2026-07-10T20.log +1883 -0
- package/logs/2026-07-10T21.log +3505 -0
- package/logs/2026-07-10T22.log +3395 -0
- package/logs/2026-07-11T00.log +1338 -0
- package/logs/2026-07-11T01.log +2492 -0
- package/logs/2026-07-11T17.log +19 -0
- package/package.json +23 -16
- package/public/index.html +2 -2
- package/server/WWebPerm.mjs +161 -209
- package/server/procCore.mjs +187 -0
- package/server/procLang.mjs +276 -60
- package/server/procStaInfor.mjs +128 -0
- package/server/provideTabs.mjs +1 -1
- package/server/srLog.mjs +30 -0
- package/server/staLogs/filterVpfsByWindow.mjs +27 -0
- package/server/staLogs/staEvent.callWorker.mjs +46 -0
- package/server/staLogs/staEvent.mjs +118 -0
- package/server/staLogs/staEvent.shellWorker.mjs +19 -0
- package/server/staLogs/staEventTable.mjs +102 -0
- package/settings.json +43 -0
- package/src/components/Common/CheckYes.vue +18 -1
- package/src/components/Layout.vue +1 -1
- package/src/components/LayoutContent.vue +13 -3
- package/src/components/LayoutContentGrups.vue +32 -25
- package/src/components/LayoutContentPemis.vue +32 -25
- package/src/components/LayoutContentStaInfor.vue +534 -0
- package/src/components/LayoutContentTargets.vue +35 -28
- package/src/components/LayoutContentUsers.vue +32 -25
- package/src/components/LayoutState.vue +5 -0
- package/src/components/VeCgrups.vue +19 -9
- package/src/components/VeCpemis.vue +19 -9
- package/src/components/VeCrules.vue +19 -9
- package/src/components/VeGrupBlngUsers.vue +35 -29
- package/src/components/VePemiBlngGrups.vue +35 -29
- package/src/getPerm.mjs +7 -17
- package/src/getPermUserInfor.mjs +8 -18
- package/src/main.js +4 -9
- package/src/perm.mjs +3 -4
- package/src/plugins/mShare.mjs +8 -13
- package/src/plugins/mUI.mjs +7 -44
- package/src/store/mutations.mjs +0 -10
- package/src/store/types.mjs +0 -2
- package/srv.mjs +76 -101
- package/tableTags.json +1 -1
- package/z/344/277/256/346/255/243/350/246/217/345/212/203/346/233/270.md +450 -0
- package/db/wperm/grups/data.mdb +0 -0
- package/db/wperm/grups/lock.mdb +0 -0
- package/db/wperm/pemis/data.mdb +0 -0
- package/db/wperm/pemis/lock.mdb +0 -0
- package/db/wperm/targets/data.mdb +0 -0
- package/db/wperm/targets/lock.mdb +0 -0
- package/db/wperm/users/data.mdb +0 -0
- package/db/wperm/users/lock.mdb +0 -0
- package/dist/css/app.30e81bfe.css +0 -1
- package/dist/js/app-legacy.3324392e.js +0 -1
- package/dist/js/app.3324392e.js +0 -1
- package/dist/js/chunk-vendors-legacy.e8703728.js +0 -21
- package/dist/js/chunk-vendors.e8703728.js +0 -21
- package/src/plugins/mDataSelectorSchema.mjs +0 -30
- package/tableTags-web-perm.json +0 -1
- package/test/getUserRules.test.mjs +0 -899
|
@@ -9,12 +9,12 @@ jobs:
|
|
|
9
9
|
|
|
10
10
|
strategy:
|
|
11
11
|
matrix:
|
|
12
|
-
node-version: [
|
|
12
|
+
node-version: [24.x]
|
|
13
13
|
|
|
14
14
|
steps:
|
|
15
15
|
- uses: actions/checkout@v4
|
|
16
16
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
17
|
-
uses: actions/setup-node@
|
|
17
|
+
uses: actions/setup-node@v4
|
|
18
18
|
with:
|
|
19
19
|
node-version: ${{ matrix.node-version }}
|
|
20
20
|
- run: npm cache clean -f
|
package/README.md
CHANGED
|
@@ -33,9 +33,9 @@ let url = st.dbUrl
|
|
|
33
33
|
let db = st.dbName
|
|
34
34
|
let opt = {
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
useCheckUser: false,
|
|
37
37
|
getUserById: null,
|
|
38
|
-
|
|
38
|
+
useExcludeWhenNotAdmin: false,
|
|
39
39
|
|
|
40
40
|
serverPort: 11006,
|
|
41
41
|
subfolder: '', //mperm
|
|
@@ -76,8 +76,8 @@ let getUserByToken = async (token) => {
|
|
|
76
76
|
return {}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
let
|
|
80
|
-
console.log('
|
|
79
|
+
let verifyClientUser = (user, from) => {
|
|
80
|
+
console.log('verifyClientUser/user', user)
|
|
81
81
|
// return false //測試無法登入
|
|
82
82
|
console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
83
83
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
@@ -91,7 +91,7 @@ let verifyAppUser = (user, from) => {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
//WWebPerm
|
|
94
|
-
let instWWebPerm = WWebPerm(WOrm, url, db, getUserByToken,
|
|
94
|
+
let instWWebPerm = WWebPerm(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt)
|
|
95
95
|
|
|
96
96
|
instWWebPerm.on('error', (err) => {
|
|
97
97
|
console.log(err)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bg-gray-100[data-v-4489c98c]{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-50[data-v-4489c98c]{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-white[data-v-4489c98c]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.border[data-v-4489c98c]{border-width:1px}.border-collapse[data-v-4489c98c]{border-collapse:collapse}.border-solid[data-v-4489c98c]{border-style:solid}.border-gray-200[data-v-4489c98c]{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300[data-v-4489c98c]{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.flex[data-v-4489c98c]{display:-webkit-box;display:-ms-flexbox;display:flex}.focus\:ring-blue-500[data-v-4489c98c]:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.font-medium[data-v-4489c98c]{font-weight:500}.font-semibold[data-v-4489c98c]{font-weight:600}.h-4[data-v-4489c98c]{height:1rem}.hover\:bg-gray-50[data-v-4489c98c]:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.items-center[data-v-4489c98c]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.justify-end[data-v-4489c98c]{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mb-8[data-v-4489c98c]{margin-bottom:2rem}.ml-2[data-v-4489c98c]{margin-left:.5rem}.mt-2[data-v-4489c98c]{margin-top:.5rem}.overflow-x-auto[data-v-4489c98c]{overflow-x:auto}.p-5[data-v-4489c98c]{padding:1.25rem}.pb-2[data-v-4489c98c]{padding-bottom:.5rem}.px-2[data-v-4489c98c]{padding-left:.5rem;padding-right:.5rem}.px-6[data-v-4489c98c]{padding-left:1.5rem;padding-right:1.5rem}.py-1[data-v-4489c98c]{padding-top:.25rem;padding-bottom:.25rem}.py-3[data-v-4489c98c]{padding-top:.75rem;padding-bottom:.75rem}.py-4[data-v-4489c98c]{padding-top:1rem;padding-bottom:1rem}.relative[data-v-4489c98c]{position:relative}.rounded[data-v-4489c98c]{border-radius:.25rem}.rounded-lg[data-v-4489c98c]{border-radius:.5rem}.shadow-md[data-v-4489c98c]{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.space-x-4[data-v-4489c98c]>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-8[data-v-4489c98c]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.text-blue-600[data-v-4489c98c]{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-gray-500[data-v-4489c98c]{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-700[data-v-4489c98c]{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900[data-v-4489c98c]{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-left[data-v-4489c98c]{text-align:left}.text-lg[data-v-4489c98c]{font-size:1.125rem;line-height:1.75rem}.text-purple-600[data-v-4489c98c]{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-sm[data-v-4489c98c]{font-size:.875rem;line-height:1.25rem}.text-xs[data-v-4489c98c]{font-size:.75rem;line-height:1rem}.transition-colors[data-v-4489c98c]{-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.w-4[data-v-4489c98c]{width:1rem}.w-full[data-v-4489c98c]{width:100%}.staCtrl[data-v-4489c98c]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:12px;padding:8px 0}.staEventSel[data-v-4489c98c]{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;gap:8px;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}.staEventList[data-v-4489c98c],.staEventSel[data-v-4489c98c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center}.staEventList[data-v-4489c98c]{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;gap:4px 14px}.staEventItem[data-v-4489c98c]{cursor:pointer}.staEventBtns[data-v-4489c98c],.staEventItem[data-v-4489c98c]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.staEventBtns[data-v-4489c98c]{gap:6px}.staBtn[data-v-4489c98c]{font-size:.8rem;color:#2563eb;border:1px solid #d1d5db;border-radius:.25rem;padding:2px 8px;background:#fff;cursor:pointer}.staBtn[data-v-4489c98c]:hover{background:#f3f4f6}.staCtrlRight[data-v-4489c98c]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:16px}.mr-2[data-v-4489c98c]{margin-right:.5rem}.ml-1[data-v-4489c98c]{margin-left:.25rem}body,html{font-family:微軟正黑體,Microsoft JhengHei,MicrosoftJhengHeiRegular,Avenir,Helvetica,Arial,sans-serif;overflow-y:hidden}a,button,div,input,p,pre,span,textarea{font-family:inherit}.fade-enter-active{-webkit-animation:go 1s;animation:go 1s}.fade-leave-active{-webkit-animation:back 1s;animation:back 1s}@-webkit-keyframes go{0%{opacity:0}to{opacity:1}}@keyframes go{0%{opacity:0}to{opacity:1}}@-webkit-keyframes back{0%{opacity:1}to{opacity:0}}@keyframes back{0%{opacity:1}to{opacity:0}}
|