updated
This commit is contained in:
parent
2842279165
commit
8a53037137
14 changed files with 154 additions and 239 deletions
158
.github/workflows/release.yaml
vendored
158
.github/workflows/release.yaml
vendored
|
|
@ -1,86 +1,86 @@
|
|||
name: release-test
|
||||
run-name: release-test ${{ github.actor }}
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "version-[0-9]+.[0-9]+.[0-9]+"
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "version-[0-9]+.[0-9]+.[0-9]+"
|
||||
workflow_dispatch:
|
||||
env:
|
||||
REGISTRY: docker.frappet.com
|
||||
IMAGE_NAME: ehr/bma-ehr-admin
|
||||
DEPLOY_HOST: 49.0.91.80
|
||||
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-admin
|
||||
REGISTRY: docker.frappet.com
|
||||
IMAGE_NAME: ehr/bma-ehr-admin
|
||||
DEPLOY_HOST: frappet.com
|
||||
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-admin
|
||||
|
||||
jobs:
|
||||
# act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=test-v6.1 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
|
||||
release-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
# skip Set up QEMU because it fail on act and container
|
||||
# Gen Version try to get version from tag or inut
|
||||
- name: Set output tags
|
||||
id: vars
|
||||
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
|
||||
- name: Gen Version
|
||||
id: gen_ver
|
||||
run: |
|
||||
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
|
||||
IMAGE_VER=${{ steps.vars.outputs.tag }}
|
||||
else
|
||||
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
|
||||
fi
|
||||
if [[ $IMAGE_VER == '' ]]; then
|
||||
IMAGE_VER='test-vBeta'
|
||||
fi
|
||||
echo '::set-output name=image_ver::'$IMAGE_VER
|
||||
- name: Test Version
|
||||
run: |
|
||||
echo $GITHUB_REF
|
||||
echo ${{ steps.gen_ver.outputs.image_ver }}
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Login in to registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{env.REGISTRY}}
|
||||
username: ${{secrets.DOCKER_USER}}
|
||||
password: ${{secrets.DOCKER_PASS}}
|
||||
- name: Build and load local docker image
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64
|
||||
push: true
|
||||
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
|
||||
# act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=test-v6.1 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
|
||||
release-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
# skip Set up QEMU because it fail on act and container
|
||||
# Gen Version try to get version from tag or inut
|
||||
- name: Set output tags
|
||||
id: vars
|
||||
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
|
||||
- name: Gen Version
|
||||
id: gen_ver
|
||||
run: |
|
||||
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
|
||||
IMAGE_VER=${{ steps.vars.outputs.tag }}
|
||||
else
|
||||
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
|
||||
fi
|
||||
if [[ $IMAGE_VER == '' ]]; then
|
||||
IMAGE_VER='test-vBeta'
|
||||
fi
|
||||
echo '::set-output name=image_ver::'$IMAGE_VER
|
||||
- name: Test Version
|
||||
run: |
|
||||
echo $GITHUB_REF
|
||||
echo ${{ steps.gen_ver.outputs.image_ver }}
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Login in to registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{env.REGISTRY}}
|
||||
username: ${{secrets.DOCKER_USER}}
|
||||
password: ${{secrets.DOCKER_PASS}}
|
||||
- name: Build and load local docker image
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64
|
||||
push: true
|
||||
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
|
||||
|
||||
- name: Reload docker compose
|
||||
uses: appleboy/ssh-action@v0.1.8
|
||||
with:
|
||||
host: ${{env.DEPLOY_HOST}}
|
||||
username: frappet
|
||||
password: ${{ secrets.SSH_PASSWORD }}
|
||||
port: 10102
|
||||
script: |
|
||||
cd "${{env.COMPOSE_PATH}}"
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
echo "${{ steps.gen_ver.outputs.image_ver }}"> success
|
||||
- uses: snow-actions/line-notify@v1.1.0
|
||||
if: success()
|
||||
with:
|
||||
access_token: ${{ secrets.TOKEN_LINE }}
|
||||
message: |
|
||||
-Success✅✅✅
|
||||
Image: ${{env.IMAGE_NAME}}
|
||||
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
|
||||
By: ${{secrets.DOCKER_USER}}
|
||||
- uses: snow-actions/line-notify@v1.1.0
|
||||
if: failure()
|
||||
with:
|
||||
access_token: ${{ secrets.TOKEN_LINE }}
|
||||
message: |
|
||||
-Failure❌❌❌
|
||||
Image: ${{env.IMAGE_NAME}}
|
||||
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
|
||||
By: ${{secrets.DOCKER_USER}}
|
||||
- name: Reload docker compose
|
||||
uses: appleboy/ssh-action@v0.1.8
|
||||
with:
|
||||
host: ${{env.DEPLOY_HOST}}
|
||||
username: frappet
|
||||
password: ${{ secrets.SSH_PASSWORD }}
|
||||
port: 10102
|
||||
script: |
|
||||
cd "${{env.COMPOSE_PATH}}"
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
echo "${{ steps.gen_ver.outputs.image_ver }}"> success
|
||||
- uses: snow-actions/line-notify@v1.1.0
|
||||
if: success()
|
||||
with:
|
||||
access_token: ${{ secrets.TOKEN_LINE }}
|
||||
message: |
|
||||
-Success✅✅✅
|
||||
Image: ${{env.IMAGE_NAME}}
|
||||
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
|
||||
By: ${{secrets.DOCKER_USER}}
|
||||
- uses: snow-actions/line-notify@v1.1.0
|
||||
if: failure()
|
||||
with:
|
||||
access_token: ${{ secrets.TOKEN_LINE }}
|
||||
message: |
|
||||
-Failure❌❌❌
|
||||
Image: ${{env.IMAGE_NAME}}
|
||||
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
|
||||
By: ${{secrets.DOCKER_USER}}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ const menuList = readonly<any[]>([
|
|||
activeIcon: "person",
|
||||
label: "ข้อมูลหลัก",
|
||||
path: "metadata",
|
||||
role: ["SUPER_ADMIN", "ADMIN"],
|
||||
role: ["SUPER_ADMIN"],
|
||||
children: [
|
||||
{
|
||||
key: 2.0,
|
||||
|
|
@ -100,12 +100,12 @@ const menuList = readonly<any[]>([
|
|||
},
|
||||
{
|
||||
key: 2.0,
|
||||
label: "จัดการบทบาท (Roles)",
|
||||
label: "จัดการบทบาทและสิทธิ์ (Roles)",
|
||||
path: "manageRoles",
|
||||
},
|
||||
{
|
||||
key: 2.0,
|
||||
label: "จัดการสิทธิ์ (Permissions)",
|
||||
label: "กำหนดสิทธิ์ (Permissions)",
|
||||
path: "managePermission",
|
||||
},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -418,13 +418,11 @@ onMounted(() => {
|
|||
</d-table>
|
||||
</div>
|
||||
|
||||
copyPosition
|
||||
<DialogAddPosition
|
||||
v-model:add-position="modalAddPosition"
|
||||
v-model:form-data="formPositionSelect"
|
||||
v-model:edit-check="editPosition"
|
||||
v-model:copy-check="copyPosition"
|
||||
|
||||
:get-data="searchInput"
|
||||
/>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -48,9 +48,7 @@ export default [
|
|||
name: "masterCalendarWork",
|
||||
component: calendarWorkPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -58,9 +56,7 @@ export default [
|
|||
name: "masterInsigniaPage",
|
||||
component: masterInsignia,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -68,9 +64,7 @@ export default [
|
|||
name: "masterInsigniadetail",
|
||||
component: detailInsignia,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -78,9 +72,7 @@ export default [
|
|||
name: "masterPersonal",
|
||||
component: personalPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -88,9 +80,7 @@ export default [
|
|||
name: "masterPersonalDistrict",
|
||||
component: personalDistrict,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -98,9 +88,7 @@ export default [
|
|||
name: "masterPersonalSubDistrict",
|
||||
component: personalSubDistrict,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -108,9 +96,7 @@ export default [
|
|||
name: "masterPosition",
|
||||
component: positionPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -118,9 +104,7 @@ export default [
|
|||
name: "masterPositionLevel",
|
||||
component: positionLevelPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [9],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -128,9 +112,7 @@ export default [
|
|||
name: "masterPositionEmployee",
|
||||
component: positionEmployeePage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [8],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -138,9 +120,7 @@ export default [
|
|||
name: "masterPositionEmployeeLevel",
|
||||
component: positionEmployeeLevelPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [9],
|
||||
Role: "metadata",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -149,9 +129,7 @@ export default [
|
|||
name: "KPIIndicatorByPlan",
|
||||
component: IndicatorByPlan,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -160,9 +138,7 @@ export default [
|
|||
name: "KPIIndicatorByPlan/Add",
|
||||
component: IndicatorByPlanDetail,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -170,9 +146,7 @@ export default [
|
|||
name: "KPIIndicatorByPlanByid",
|
||||
component: IndicatorByPlanDetail,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -180,9 +154,7 @@ export default [
|
|||
name: "KPIIndicatorByRole",
|
||||
component: IndicatorByRole,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -190,9 +162,7 @@ export default [
|
|||
name: "KPIIndicatorByRoleAdd",
|
||||
component: IndicatorByRoleDetail,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -200,9 +170,7 @@ export default [
|
|||
name: "KPIIndicatorByRoleByid",
|
||||
component: IndicatorByRoleDetail,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -210,9 +178,7 @@ export default [
|
|||
name: "KPICompetency",
|
||||
component: competencyPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -220,9 +186,7 @@ export default [
|
|||
name: "KPICompetencyAdd",
|
||||
component: competencyAddPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -230,9 +194,7 @@ export default [
|
|||
name: "KPICompetencyByid",
|
||||
component: competencyAddPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -241,9 +203,7 @@ export default [
|
|||
name: "strategic",
|
||||
component: StrategicView,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.6],
|
||||
Role: "development",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -251,9 +211,7 @@ export default [
|
|||
name: "KPIAssignment",
|
||||
component: AssignmentView,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.6],
|
||||
Role: "development",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -261,9 +219,7 @@ export default [
|
|||
name: "KPIAssignmentById",
|
||||
component: AssignmentDetailView,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [1.1],
|
||||
Role: "evaluateKPI",
|
||||
Role: ["SUPER_ADMIN"],
|
||||
},
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ watch(
|
|||
lazy-rules
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
label="คำอิบาย"
|
||||
label="คำอธิบาย"
|
||||
type="textarea"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -18,9 +18,7 @@ export default [
|
|||
name: "manageUsers",
|
||||
component: ListsPageUser,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "user_role",
|
||||
Role: ["SUPER_ADMIN", "ADMIN"],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -28,25 +26,15 @@ export default [
|
|||
name: "manageUsersRolesId",
|
||||
component: PageManagementRole,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "user_role",
|
||||
Role: ["SUPER_ADMIN", "ADMIN"],
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
path: "/users/:id",
|
||||
name: "masterInsignia",
|
||||
},
|
||||
|
||||
{
|
||||
path: "/roles",
|
||||
name: "manageRoles",
|
||||
component: ListsPageRole,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "user_role",
|
||||
Role: ["SUPER_ADMIN", "ADMIN"],
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -55,9 +43,7 @@ export default [
|
|||
name: "manageRolesId",
|
||||
component: ListsPage2Role,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "user_role",
|
||||
Role: ["SUPER_ADMIN", "ADMIN"],
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -66,9 +52,7 @@ export default [
|
|||
name: "managePermission",
|
||||
component: PermissionPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: "user_role",
|
||||
Role: ["SUPER_ADMIN", "ADMIN"],
|
||||
},
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -153,7 +153,9 @@ onMounted(() => {
|
|||
|
||||
<template>
|
||||
<div class="row items-center">
|
||||
<div class="toptitle text-dark row items-center q-py-xs">จัดการบทบาท</div>
|
||||
<div class="toptitle text-dark row items-center q-py-xs">
|
||||
จัดการบทบาทและสิทธิ์
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-card flast bordered class="q-pa-md">
|
||||
|
|
|
|||
|
|
@ -1171,7 +1171,7 @@ function onSubmit() {
|
|||
class="q-mr-sm"
|
||||
@click="router.go(-1)"
|
||||
/>
|
||||
จัดการสิทธิ์บทบาท
|
||||
จัดการบทบาทและสิทธิ์
|
||||
</div>
|
||||
|
||||
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||
|
|
@ -1200,7 +1200,7 @@ function onSubmit() {
|
|||
lazy-rules
|
||||
hide-bottom-space
|
||||
class="inputgreen"
|
||||
label="คำอิบาย"
|
||||
label="คำอธิบาย"
|
||||
type="textarea"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -1247,12 +1247,28 @@ function onSubmit() {
|
|||
icon="info"
|
||||
flat
|
||||
size="12px"
|
||||
><q-tooltip class="text-body1 ">
|
||||
><q-tooltip class="text-body1">
|
||||
<div class="column">
|
||||
<div class="row no-wrap"><strong>ROOT</strong>-มีสิทธิเข้าถึงข้อมูลในทุกระดับ ตั้งแต่ระดับของตัวเองลงไปชั้นล่างสุด และขึ้นไปถึงชั้นบนสุด</div>
|
||||
<div class="row no-wrap"><strong>CHILD</strong>-มีสิทธิเข้าถึงข้อมูลเฉพาะระดับชั้นปัจจุบันของตัวเอง ลงไปถึงชั้นล่างสุด</div>
|
||||
<div class="row no-wrap"><strong>NORMAL</strong>-มีสิทธิเข้าถึงข้อมูลเฉพาะในระดับชั้นตัวเองเท่านั้น ไม่สามารถขึ้นหรือลงได้</div>
|
||||
<div class="row no-wrap"><strong>SPECIFIC</strong>-มีสิทธิเข้าถึงข้อมูลเฉพาะเจาะจง ซึ่งจะต้องกำ หนด ID ของข้อมูลที่ต้องการเข้าถึงด้วย</div>
|
||||
<div class="row no-wrap">
|
||||
<strong>ROOT</strong>-มีสิทธิเข้าถึงข้อมูลในทุกระดับ
|
||||
ตั้งแต่ระดับของตัวเองลงไปชั้นล่างสุด
|
||||
และขึ้นไปถึงชั้นบนสุด
|
||||
</div>
|
||||
<div class="row no-wrap">
|
||||
<strong>CHILD</strong
|
||||
>-มีสิทธิเข้าถึงข้อมูลเฉพาะระดับชั้นปัจจุบันของตัวเอง
|
||||
ลงไปถึงชั้นล่างสุด
|
||||
</div>
|
||||
<div class="row no-wrap">
|
||||
<strong>NORMAL</strong
|
||||
>-มีสิทธิเข้าถึงข้อมูลเฉพาะในระดับชั้นตัวเองเท่านั้น
|
||||
ไม่สามารถขึ้นหรือลงได้
|
||||
</div>
|
||||
<div class="row no-wrap">
|
||||
<strong>SPECIFIC</strong
|
||||
>-มีสิทธิเข้าถึงข้อมูลเฉพาะเจาะจง ซึ่งจะต้องกำ หนด ID
|
||||
ของข้อมูลที่ต้องการเข้าถึงด้วย
|
||||
</div>
|
||||
</div>
|
||||
</q-tooltip></q-btn
|
||||
></q-th
|
||||
|
|
@ -1659,10 +1675,9 @@ function onSubmit() {
|
|||
top: -5px;
|
||||
right: -5px;
|
||||
}
|
||||
.absolute-customH{
|
||||
.absolute-customH {
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
right: -2px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ const columns = ref<QTableProps["columns"]>([
|
|||
{
|
||||
name: "role",
|
||||
align: "left",
|
||||
label: "สิทธิ์การจัดการ",
|
||||
label: "สิทธิ์",
|
||||
sortable: false,
|
||||
field: "role",
|
||||
headerStyle: "font-size: 14px",
|
||||
|
|
@ -352,7 +352,7 @@ onMounted(() => {
|
|||
|
||||
<template>
|
||||
<div class="row items-center">
|
||||
<div class="toptitle text-dark row items-center q-py-xs">จัดการสิทธิ์</div>
|
||||
<div class="toptitle text-dark row items-center q-py-xs">กำหนดสิทธิ์</div>
|
||||
</div>
|
||||
|
||||
<q-card flast bordered>
|
||||
|
|
@ -568,7 +568,7 @@ onMounted(() => {
|
|||
size="17px"
|
||||
name="mdi-account-group"
|
||||
/>
|
||||
<div class="q-pl-md">จัดการสิทธิ์</div>
|
||||
<div class="q-pl-md">กำหนดสิทธิ์</div>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ export default [
|
|||
name: "viewLogs",
|
||||
component: ListsPage,
|
||||
meta: {
|
||||
Auth: true,
|
||||
Key: [7],
|
||||
Role: ["SUPER_ADMIN", "ADMIN"],
|
||||
},
|
||||
},
|
||||
|
|
|
|||
10
src/plugins/checkPermission.ts
Normal file
10
src/plugins/checkPermission.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import keycloak from "@/plugins/keycloak";
|
||||
|
||||
const checkPermission = (array2: string[]): boolean => {
|
||||
if (keycloak.tokenParsed) {
|
||||
const array1: string[] = keycloak.tokenParsed?.role;
|
||||
return array1.some((element) => array2.includes(element));
|
||||
} else return false;
|
||||
};
|
||||
|
||||
export default checkPermission;
|
||||
|
|
@ -10,6 +10,7 @@ import ModuleLogs from "@/modules/03_logs/router";
|
|||
|
||||
// TODO: ใช้หรือไม่?
|
||||
import keycloak from "@/plugins/keycloak";
|
||||
import checkPermission from "@/plugins/checkPermission";
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
|
|
@ -66,16 +67,10 @@ router.beforeEach((to, from, next) => {
|
|||
});
|
||||
} else {
|
||||
// keycloak.updateToken(60);
|
||||
// const role = keycloak.tokenParsed?.role;
|
||||
// console.log("tokenParsed===>", keycloak.tokenParsed?.role);
|
||||
// console.log("Role===>", to.meta.Role);
|
||||
// console.log(hasCommonValues(role, to.meta.Role));
|
||||
|
||||
// if (role.includes(to.meta.Role)) {
|
||||
// if (checkPermission(to.meta.Role)) {
|
||||
next();
|
||||
// } else {
|
||||
// next({ path: "" });
|
||||
// // next();
|
||||
// }
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
import { defineStore } from "pinia";
|
||||
import { ref } from "vue";
|
||||
|
||||
export const useroleUserDataStore = defineStore("roleusers", () => {
|
||||
const insignia1Role = ref<boolean>(false);
|
||||
const insignia2Role = ref<boolean>(false);
|
||||
const caregiverRole = ref<boolean>(false);
|
||||
const chairmanRole = ref<boolean>(false);
|
||||
const commanderRole = ref<boolean>(false);
|
||||
const admin2Role = ref<boolean>(false);
|
||||
const adminRole = ref<boolean>(false);
|
||||
const oligarchRole = ref<boolean>(false);
|
||||
|
||||
// const hasCommonValues = (array1: number[], array2: number[]): boolean => {
|
||||
// return array1.some((element) => array2.includes(element));
|
||||
// };
|
||||
|
||||
const fetchroleUser = async (keycloak: any) => {
|
||||
if (keycloak != null) {
|
||||
insignia1Role.value = await keycloak.includes("insignia1");
|
||||
insignia2Role.value = await keycloak.includes("insignia2");
|
||||
caregiverRole.value = await keycloak.includes("caregiver");
|
||||
chairmanRole.value = await keycloak.includes("chairman");
|
||||
commanderRole.value = await keycloak.includes("commander");
|
||||
admin2Role.value = await keycloak.includes("admin2");
|
||||
adminRole.value = await keycloak.includes("admin");
|
||||
oligarchRole.value = await keycloak.includes("oligarch");
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
fetchroleUser,
|
||||
insignia1Role,
|
||||
insignia2Role,
|
||||
caregiverRole,
|
||||
chairmanRole,
|
||||
commanderRole,
|
||||
admin2Role,
|
||||
adminRole,
|
||||
};
|
||||
});
|
||||
|
|
@ -16,6 +16,7 @@ import type {
|
|||
optionType,
|
||||
} from "../interface/request/main/main";
|
||||
import { menuList } from "../interface/request/main/main";
|
||||
import checkPermission from "@/plugins/checkPermission";
|
||||
// import { useroleUserDataStore } from "@/stores/roleUser";
|
||||
|
||||
const { setVerticalScrollPosition } = scroll;
|
||||
|
|
@ -269,8 +270,6 @@ const doLogout = () => {
|
|||
* ดิงชื่อผู้ใช้งานจาก keycloak
|
||||
*/
|
||||
if (keycloak.tokenParsed != null) {
|
||||
console.log("tokenParsed===>", keycloak.tokenParsed);
|
||||
|
||||
fullname.value = keycloak.tokenParsed.name;
|
||||
role.value = keycloak.tokenParsed.role;
|
||||
}
|
||||
|
|
@ -762,8 +761,7 @@ watch(
|
|||
<q-list padding>
|
||||
<div v-for="(menuItem, index) in menuList" :key="index">
|
||||
<!-- เมนูย่อย -->
|
||||
<!-- v-if="role.includes(menuItem.role)" -->
|
||||
<div>
|
||||
<div v-if="checkPermission(menuItem.role)">
|
||||
<q-expansion-item
|
||||
group="somegroup"
|
||||
class="menuSub"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue