This commit is contained in:
Warunee Tamkoo 2024-06-11 14:07:20 +07:00
parent 2842279165
commit 8a53037137
14 changed files with 154 additions and 239 deletions

View file

@ -1,86 +1,86 @@
name: release-test name: release-test
run-name: release-test ${{ github.actor }} run-name: release-test ${{ github.actor }}
on: on:
push: push:
tags: tags:
- "version-[0-9]+.[0-9]+.[0-9]+" - "version-[0-9]+.[0-9]+.[0-9]+"
workflow_dispatch: workflow_dispatch:
env: env:
REGISTRY: docker.frappet.com REGISTRY: docker.frappet.com
IMAGE_NAME: ehr/bma-ehr-admin IMAGE_NAME: ehr/bma-ehr-admin
DEPLOY_HOST: 49.0.91.80 DEPLOY_HOST: frappet.com
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-admin COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-admin
jobs: 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 # 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: release-test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
# skip Set up QEMU because it fail on act and container # skip Set up QEMU because it fail on act and container
# Gen Version try to get version from tag or inut # Gen Version try to get version from tag or inut
- name: Set output tags - name: Set output tags
id: vars id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- name: Gen Version - name: Gen Version
id: gen_ver id: gen_ver
run: | run: |
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
IMAGE_VER=${{ steps.vars.outputs.tag }} IMAGE_VER=${{ steps.vars.outputs.tag }}
else else
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
fi fi
if [[ $IMAGE_VER == '' ]]; then if [[ $IMAGE_VER == '' ]]; then
IMAGE_VER='test-vBeta' IMAGE_VER='test-vBeta'
fi fi
echo '::set-output name=image_ver::'$IMAGE_VER echo '::set-output name=image_ver::'$IMAGE_VER
- name: Test Version - name: Test Version
run: | run: |
echo $GITHUB_REF echo $GITHUB_REF
echo ${{ steps.gen_ver.outputs.image_ver }} echo ${{ steps.gen_ver.outputs.image_ver }}
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
- name: Login in to registry - name: Login in to registry
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
registry: ${{env.REGISTRY}} registry: ${{env.REGISTRY}}
username: ${{secrets.DOCKER_USER}} username: ${{secrets.DOCKER_USER}}
password: ${{secrets.DOCKER_PASS}} password: ${{secrets.DOCKER_PASS}}
- name: Build and load local docker image - name: Build and load local docker image
uses: docker/build-push-action@v3 uses: docker/build-push-action@v3
with: with:
context: . context: .
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
- name: Reload docker compose - name: Reload docker compose
uses: appleboy/ssh-action@v0.1.8 uses: appleboy/ssh-action@v0.1.8
with: with:
host: ${{env.DEPLOY_HOST}} host: ${{env.DEPLOY_HOST}}
username: frappet username: frappet
password: ${{ secrets.SSH_PASSWORD }} password: ${{ secrets.SSH_PASSWORD }}
port: 10102 port: 10102
script: | script: |
cd "${{env.COMPOSE_PATH}}" cd "${{env.COMPOSE_PATH}}"
docker compose pull docker compose pull
docker compose up -d docker compose up -d
echo "${{ steps.gen_ver.outputs.image_ver }}"> success echo "${{ steps.gen_ver.outputs.image_ver }}"> success
- uses: snow-actions/line-notify@v1.1.0 - uses: snow-actions/line-notify@v1.1.0
if: success() if: success()
with: with:
access_token: ${{ secrets.TOKEN_LINE }} access_token: ${{ secrets.TOKEN_LINE }}
message: | message: |
-Success✅✅✅ -Success✅✅✅
Image: ${{env.IMAGE_NAME}} Image: ${{env.IMAGE_NAME}}
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }} Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
By: ${{secrets.DOCKER_USER}} By: ${{secrets.DOCKER_USER}}
- uses: snow-actions/line-notify@v1.1.0 - uses: snow-actions/line-notify@v1.1.0
if: failure() if: failure()
with: with:
access_token: ${{ secrets.TOKEN_LINE }} access_token: ${{ secrets.TOKEN_LINE }}
message: | message: |
-Failure❌❌❌ -Failure❌❌❌
Image: ${{env.IMAGE_NAME}} Image: ${{env.IMAGE_NAME}}
Version: ${{ steps.gen_ver.outputs.IMAGE_VER }} Version: ${{ steps.gen_ver.outputs.IMAGE_VER }}
By: ${{secrets.DOCKER_USER}} By: ${{secrets.DOCKER_USER}}

View file

@ -57,7 +57,7 @@ const menuList = readonly<any[]>([
activeIcon: "person", activeIcon: "person",
label: "ข้อมูลหลัก", label: "ข้อมูลหลัก",
path: "metadata", path: "metadata",
role: ["SUPER_ADMIN", "ADMIN"], role: ["SUPER_ADMIN"],
children: [ children: [
{ {
key: 2.0, key: 2.0,
@ -100,12 +100,12 @@ const menuList = readonly<any[]>([
}, },
{ {
key: 2.0, key: 2.0,
label: "จัดการบทบาท (Roles)", label: "จัดการบทบาทและสิทธิ์ (Roles)",
path: "manageRoles", path: "manageRoles",
}, },
{ {
key: 2.0, key: 2.0,
label: "จัดการสิทธิ์ (Permissions)", label: "กำหนดสิทธิ์ (Permissions)",
path: "managePermission", path: "managePermission",
}, },
], ],

View file

@ -418,13 +418,11 @@ onMounted(() => {
</d-table> </d-table>
</div> </div>
copyPosition
<DialogAddPosition <DialogAddPosition
v-model:add-position="modalAddPosition" v-model:add-position="modalAddPosition"
v-model:form-data="formPositionSelect" v-model:form-data="formPositionSelect"
v-model:edit-check="editPosition" v-model:edit-check="editPosition"
v-model:copy-check="copyPosition" v-model:copy-check="copyPosition"
:get-data="searchInput" :get-data="searchInput"
/> />
</template> </template>

View file

@ -48,9 +48,7 @@ export default [
name: "masterCalendarWork", name: "masterCalendarWork",
component: calendarWorkPage, component: calendarWorkPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -58,9 +56,7 @@ export default [
name: "masterInsigniaPage", name: "masterInsigniaPage",
component: masterInsignia, component: masterInsignia,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -68,9 +64,7 @@ export default [
name: "masterInsigniadetail", name: "masterInsigniadetail",
component: detailInsignia, component: detailInsignia,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -78,9 +72,7 @@ export default [
name: "masterPersonal", name: "masterPersonal",
component: personalPage, component: personalPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -88,9 +80,7 @@ export default [
name: "masterPersonalDistrict", name: "masterPersonalDistrict",
component: personalDistrict, component: personalDistrict,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -98,9 +88,7 @@ export default [
name: "masterPersonalSubDistrict", name: "masterPersonalSubDistrict",
component: personalSubDistrict, component: personalSubDistrict,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -108,9 +96,7 @@ export default [
name: "masterPosition", name: "masterPosition",
component: positionPage, component: positionPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [7],
Role: "metadata",
}, },
}, },
{ {
@ -118,9 +104,7 @@ export default [
name: "masterPositionLevel", name: "masterPositionLevel",
component: positionLevelPage, component: positionLevelPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [9],
Role: "metadata",
}, },
}, },
{ {
@ -128,9 +112,7 @@ export default [
name: "masterPositionEmployee", name: "masterPositionEmployee",
component: positionEmployeePage, component: positionEmployeePage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [8],
Role: "metadata",
}, },
}, },
{ {
@ -138,9 +120,7 @@ export default [
name: "masterPositionEmployeeLevel", name: "masterPositionEmployeeLevel",
component: positionEmployeeLevelPage, component: positionEmployeeLevelPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [9],
Role: "metadata",
}, },
}, },
@ -149,9 +129,7 @@ export default [
name: "KPIIndicatorByPlan", name: "KPIIndicatorByPlan",
component: IndicatorByPlan, component: IndicatorByPlan,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
@ -160,9 +138,7 @@ export default [
name: "KPIIndicatorByPlan/Add", name: "KPIIndicatorByPlan/Add",
component: IndicatorByPlanDetail, component: IndicatorByPlanDetail,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -170,9 +146,7 @@ export default [
name: "KPIIndicatorByPlanByid", name: "KPIIndicatorByPlanByid",
component: IndicatorByPlanDetail, component: IndicatorByPlanDetail,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -180,9 +154,7 @@ export default [
name: "KPIIndicatorByRole", name: "KPIIndicatorByRole",
component: IndicatorByRole, component: IndicatorByRole,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -190,9 +162,7 @@ export default [
name: "KPIIndicatorByRoleAdd", name: "KPIIndicatorByRoleAdd",
component: IndicatorByRoleDetail, component: IndicatorByRoleDetail,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -200,9 +170,7 @@ export default [
name: "KPIIndicatorByRoleByid", name: "KPIIndicatorByRoleByid",
component: IndicatorByRoleDetail, component: IndicatorByRoleDetail,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -210,9 +178,7 @@ export default [
name: "KPICompetency", name: "KPICompetency",
component: competencyPage, component: competencyPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -220,9 +186,7 @@ export default [
name: "KPICompetencyAdd", name: "KPICompetencyAdd",
component: competencyAddPage, component: competencyAddPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
{ {
@ -230,9 +194,7 @@ export default [
name: "KPICompetencyByid", name: "KPICompetencyByid",
component: competencyAddPage, component: competencyAddPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
@ -241,9 +203,7 @@ export default [
name: "strategic", name: "strategic",
component: StrategicView, component: StrategicView,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.6],
Role: "development",
}, },
}, },
{ {
@ -251,9 +211,7 @@ export default [
name: "KPIAssignment", name: "KPIAssignment",
component: AssignmentView, component: AssignmentView,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.6],
Role: "development",
}, },
}, },
{ {
@ -261,9 +219,7 @@ export default [
name: "KPIAssignmentById", name: "KPIAssignmentById",
component: AssignmentDetailView, component: AssignmentDetailView,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN"],
Key: [1.1],
Role: "evaluateKPI",
}, },
}, },
]; ];

View file

@ -127,7 +127,7 @@ watch(
lazy-rules lazy-rules
hide-bottom-space hide-bottom-space
class="inputgreen" class="inputgreen"
label="คำอิบาย" label="คำอิบาย"
type="textarea" type="textarea"
/> />
</div> </div>

View file

@ -18,9 +18,7 @@ export default [
name: "manageUsers", name: "manageUsers",
component: ListsPageUser, component: ListsPageUser,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN", "ADMIN"],
Key: [7],
Role: "user_role",
}, },
}, },
{ {
@ -28,25 +26,15 @@ export default [
name: "manageUsersRolesId", name: "manageUsersRolesId",
component: PageManagementRole, component: PageManagementRole,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN", "ADMIN"],
Key: [7],
Role: "user_role",
}, },
}, },
{
path: "/users/:id",
name: "masterInsignia",
},
{ {
path: "/roles", path: "/roles",
name: "manageRoles", name: "manageRoles",
component: ListsPageRole, component: ListsPageRole,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN", "ADMIN"],
Key: [7],
Role: "user_role",
}, },
}, },
@ -55,9 +43,7 @@ export default [
name: "manageRolesId", name: "manageRolesId",
component: ListsPage2Role, component: ListsPage2Role,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN", "ADMIN"],
Key: [7],
Role: "user_role",
}, },
}, },
@ -66,9 +52,7 @@ export default [
name: "managePermission", name: "managePermission",
component: PermissionPage, component: PermissionPage,
meta: { meta: {
Auth: true, Role: ["SUPER_ADMIN", "ADMIN"],
Key: [7],
Role: "user_role",
}, },
}, },
]; ];

View file

@ -153,7 +153,9 @@ onMounted(() => {
<template> <template>
<div class="row items-center"> <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> </div>
<q-card flast bordered class="q-pa-md"> <q-card flast bordered class="q-pa-md">

View file

@ -1171,7 +1171,7 @@ function onSubmit() {
class="q-mr-sm" class="q-mr-sm"
@click="router.go(-1)" @click="router.go(-1)"
/> />
ดการทธบทบาท ดการบทบาทและทธ
</div> </div>
<q-form greedy @submit.prevent @validation-success="onSubmit"> <q-form greedy @submit.prevent @validation-success="onSubmit">
@ -1200,7 +1200,7 @@ function onSubmit() {
lazy-rules lazy-rules
hide-bottom-space hide-bottom-space
class="inputgreen" class="inputgreen"
label="คำอิบาย" label="คำอิบาย"
type="textarea" type="textarea"
/> />
</div> </div>
@ -1247,12 +1247,28 @@ function onSubmit() {
icon="info" icon="info"
flat flat
size="12px" size="12px"
><q-tooltip class="text-body1 "> ><q-tooltip class="text-body1">
<div class="column"> <div class="column">
<div class="row no-wrap"><strong>ROOT</strong>-ทธเขาถงขอมลในทกระด งแตระดบของตวเองลงไปชนลางส และขนไปถงชนบนส</div> <div class="row no-wrap">
<div class="row no-wrap"><strong>CHILD</strong>-ทธเขาถงขอมลเฉพาะระดบชนปจจนของตวเอง ลงไปถงชนลางส</div> <strong>ROOT</strong>-ทธเขาถงขอมลในทกระด
<div class="row no-wrap"><strong>NORMAL</strong>-ทธเขาถงขอมลเฉพาะในระดบชนตวเองเทาน ไมสามารถขนหรอลงได</div> งแตระดบของตวเองลงไปชนลางส
<div class="row no-wrap"><strong>SPECIFIC</strong>-ทธเขาถงขอมลเฉพาะเจาะจง งจะตองกำ หนด ID ของขอมลทองการเขาถงดวย</div> และขนไปถงชนบนส
</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> </div>
</q-tooltip></q-btn </q-tooltip></q-btn
></q-th ></q-th
@ -1659,10 +1675,9 @@ function onSubmit() {
top: -5px; top: -5px;
right: -5px; right: -5px;
} }
.absolute-customH{ .absolute-customH {
position: absolute; position: absolute;
top: -2px; top: -2px;
right: -2px; right: -2px;
} }
</style> </style>

View file

@ -105,7 +105,7 @@ const columns = ref<QTableProps["columns"]>([
{ {
name: "role", name: "role",
align: "left", align: "left",
label: "สิทธิ์การจัดการ", label: "สิทธิ์",
sortable: false, sortable: false,
field: "role", field: "role",
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
@ -352,7 +352,7 @@ onMounted(() => {
<template> <template>
<div class="row items-center"> <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> </div>
<q-card flast bordered> <q-card flast bordered>
@ -568,7 +568,7 @@ onMounted(() => {
size="17px" size="17px"
name="mdi-account-group" name="mdi-account-group"
/> />
<div class="q-pl-md">ดการทธ</div> <div class="q-pl-md">กำหนดทธ</div>
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>

View file

@ -6,8 +6,6 @@ export default [
name: "viewLogs", name: "viewLogs",
component: ListsPage, component: ListsPage,
meta: { meta: {
Auth: true,
Key: [7],
Role: ["SUPER_ADMIN", "ADMIN"], Role: ["SUPER_ADMIN", "ADMIN"],
}, },
}, },

View 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;

View file

@ -10,6 +10,7 @@ import ModuleLogs from "@/modules/03_logs/router";
// TODO: ใช้หรือไม่? // TODO: ใช้หรือไม่?
import keycloak from "@/plugins/keycloak"; import keycloak from "@/plugins/keycloak";
import checkPermission from "@/plugins/checkPermission";
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), history: createWebHistory(import.meta.env.BASE_URL),
@ -66,16 +67,10 @@ router.beforeEach((to, from, next) => {
}); });
} else { } else {
// keycloak.updateToken(60); // keycloak.updateToken(60);
// const role = keycloak.tokenParsed?.role; // if (checkPermission(to.meta.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)) {
next(); next();
// } else { // } else {
// next({ path: "" }); // next({ path: "" });
// // next();
// } // }
} }
} else { } else {

View file

@ -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,
};
});

View file

@ -16,6 +16,7 @@ import type {
optionType, optionType,
} from "../interface/request/main/main"; } from "../interface/request/main/main";
import { menuList } from "../interface/request/main/main"; import { menuList } from "../interface/request/main/main";
import checkPermission from "@/plugins/checkPermission";
// import { useroleUserDataStore } from "@/stores/roleUser"; // import { useroleUserDataStore } from "@/stores/roleUser";
const { setVerticalScrollPosition } = scroll; const { setVerticalScrollPosition } = scroll;
@ -269,8 +270,6 @@ const doLogout = () => {
* งชอผใชงานจาก keycloak * งชอผใชงานจาก keycloak
*/ */
if (keycloak.tokenParsed != null) { if (keycloak.tokenParsed != null) {
console.log("tokenParsed===>", keycloak.tokenParsed);
fullname.value = keycloak.tokenParsed.name; fullname.value = keycloak.tokenParsed.name;
role.value = keycloak.tokenParsed.role; role.value = keycloak.tokenParsed.role;
} }
@ -762,8 +761,7 @@ watch(
<q-list padding> <q-list padding>
<div v-for="(menuItem, index) in menuList" :key="index"> <div v-for="(menuItem, index) in menuList" :key="index">
<!-- เมนอย --> <!-- เมนอย -->
<!-- v-if="role.includes(menuItem.role)" --> <div v-if="checkPermission(menuItem.role)">
<div>
<q-expansion-item <q-expansion-item
group="somegroup" group="somegroup"
class="menuSub" class="menuSub"