From 03a79765811935dee871c52843404214304e2eb8 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Wed, 11 Jan 2023 14:24:46 +0100 Subject: [PATCH] Introduce method for permission checking --- aleksis/core/assets/App.vue | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/aleksis/core/assets/App.vue b/aleksis/core/assets/App.vue index f52d74e0d..a7be06fbd 100644 --- a/aleksis/core/assets/App.vue +++ b/aleksis/core/assets/App.vue @@ -212,24 +212,13 @@ <router-view v-if=" - !$route.meta.permission || - (permissionResults && - permissionResults.find( - (p) => p.name === $route.meta.permission - ) && - permissionResults.find((p) => p.name === $route.meta.permission) - .result) + !$route.meta.permission || checkPermission($route.meta.permission) " /> <message-box type="error" v-else-if=" - permissionResults && - permissionResults.find( - (p) => p.name === $route.meta.permission - ) && - permissionResults.find((p) => p.name === $route.meta.permission) - .result === false + permissionResults && !checkPermission($route.meta.permission) " > {{ $t("base.no_permission") }} @@ -390,7 +379,7 @@ export default { this.$data.permissionNames = permArray; }, - buildMenu(routes, menuKey, permissionResults) { + buildMenu(routes, menuKey) { let menu = {}; // Top-level entries @@ -401,9 +390,7 @@ export default { route.meta[menuKey] && !route.parent && (route.meta.permission - ? permissionResults.find((p) => p.name === route.meta.permission) && - permissionResults.find((p) => p.name === route.meta.permission) - .result + ? this.checkPermission(route.meta.permission) : true) ) { let menuItem = { @@ -426,9 +413,7 @@ export default { route.parent.name && route.parent.name in menu && (route.meta.permission - ? permissionResults.find((p) => p.name === route.meta.permission) && - permissionResults.find((p) => p.name === route.meta.permission) - .result + ? this.checkPermission(route.meta.permission) : true) ) { let menuItem = { @@ -443,6 +428,13 @@ export default { return Object.values(menu); }, + checkPermission(permissionName) { + return ( + this.permissionResults && + this.permissionResults.find((p) => p.name === permissionName) && + this.permissionResults.find((p) => p.name === permissionName).result + ); + }, }, apollo: { systemProperties: gqlSystemProperties, -- GitLab