Skip to content

Commit 7801a90

Browse files
authored
refactor: unify frontend and backend access control with shared page … (#43)
* refactor: unify frontend and backend access control with shared page components * fix: role switch not show * chore: update title
1 parent 59a8ce9 commit 7801a90

File tree

15 files changed

+107
-430
lines changed

15 files changed

+107
-430
lines changed

apps/backend-mock/src/modules/menu/menu.controller.ts

Lines changed: 26 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -50,30 +50,30 @@ export class MenuController {
5050
const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
5151
const roleWithMenus = {
5252
admin: {
53-
component: '/demos/access/backend/admin-visible',
53+
component: '/demos/access/admin-visible',
5454
meta: {
5555
icon: 'mdi:button-cursor',
5656
title: 'page.demos.access.adminVisible',
5757
},
58-
name: 'AccessBackendAdminVisible',
58+
name: 'AccessAdminVisible',
5959
path: 'admin-visible',
6060
},
6161
super: {
62-
component: '/demos/access/backend/super-visible',
62+
component: '/demos/access/super-visible',
6363
meta: {
6464
icon: 'mdi:button-cursor',
6565
title: 'page.demos.access.superVisible',
6666
},
67-
name: 'AccessBackendSuperVisible',
67+
name: 'AccessSuperVisible',
6868
path: 'super-visible',
6969
},
7070
user: {
71-
component: '/demos/access/backend/user-visible',
71+
component: '/demos/access/user-visible',
7272
meta: {
7373
icon: 'mdi:button-cursor',
7474
title: 'page.demos.access.userVisible',
7575
},
76-
name: 'AccessBackendUserVisible',
76+
name: 'AccessUserVisible',
7777
path: 'user-visible',
7878
},
7979
};
@@ -92,44 +92,33 @@ export class MenuController {
9292
redirect: '/demos/access',
9393
children: [
9494
{
95-
meta: {
96-
icon: 'mdi:shield-key-outline',
97-
title: 'page.demos.access.title',
98-
},
9995
name: 'Access',
10096
path: 'access',
101-
redirect: '/demos/access/backend',
97+
meta: {
98+
icon: 'mdi:cloud-key-outline',
99+
title: 'page.demos.access.backendControl',
100+
},
101+
redirect: '/demos/access/page-control',
102102
children: [
103103
{
104-
name: 'AccessBackend',
105-
path: 'backend',
104+
name: 'AccessPageControl',
105+
path: 'page-control',
106+
component: '/demos/access/index',
107+
meta: {
108+
icon: 'mdi:page-previous-outline',
109+
title: 'page.demos.access.pageAccess',
110+
},
111+
},
112+
{
113+
name: 'AccessButtonControl',
114+
path: 'button-control',
115+
component: '/demos/access/button-control',
106116
meta: {
107-
icon: 'mdi:cloud-key-outline',
108-
title: 'page.demos.access.backendControl',
117+
icon: 'mdi:button-cursor',
118+
title: 'page.demos.access.buttonControl',
109119
},
110-
redirect: '/demos/access/backend/page-control',
111-
children: [
112-
{
113-
name: 'AccessBackendPageControl',
114-
path: 'page-control',
115-
component: '/demos/access/backend/index',
116-
meta: {
117-
icon: 'mdi:page-previous-outline',
118-
title: 'page.demos.access.pageAccess',
119-
},
120-
},
121-
{
122-
name: 'AccessBackendButtonControl',
123-
path: 'button-control',
124-
component: '/demos/access/backend/button-control',
125-
meta: {
126-
icon: 'mdi:button-cursor',
127-
title: 'page.demos.access.buttonControl',
128-
},
129-
},
130-
roleWithMenus[role],
131-
],
132120
},
121+
roleWithMenus[role],
133122
],
134123
},
135124
],

apps/web-antd/src/locales/langs/en-US.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"demos": {
44
"title": "Demos",
55
"access": {
6-
"title": "Access Control",
76
"frontendControl": "Frontend Control",
87
"backendControl": "Backend Control",
98
"pageAccess": "Page Access",

apps/web-antd/src/locales/langs/zh-CN.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"demos": {
44
"title": "演示",
55
"access": {
6-
"title": "访问控制",
76
"frontendControl": "前端控制",
87
"backendControl": "后端控制",
98
"pageAccess": "页面访问",

apps/web-antd/src/router/routes/modules/demos.ts

Lines changed: 54 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -19,109 +19,71 @@ const routes: RouteRecordRaw[] = [
1919
{
2020
meta: {
2121
icon: 'mdi:shield-key-outline',
22-
title: $t('page.demos.access.title'),
22+
title: $t('page.demos.access.frontendControl'),
2323
},
2424
name: 'Access',
2525
path: 'access',
26-
redirect: '/demos/access/frontend',
26+
redirect: '/demos/access',
2727
children: [
2828
{
29-
name: 'AccessFrontend',
30-
path: 'frontend',
31-
redirect: '/demos/access/frontend/page-control',
29+
name: 'AccessPageControl',
30+
path: 'page-control',
31+
component: () => import('#/views/demos/access/index.vue'),
3232
meta: {
33-
icon: 'mdi:table-key',
34-
title: $t('page.demos.access.frontendControl'),
33+
icon: 'mdi:page-previous-outline',
34+
title: $t('page.demos.access.pageAccess'),
3535
},
36-
children: [
37-
{
38-
name: 'AccessFrontendPageControl',
39-
path: 'page-control',
40-
component: () =>
41-
import('#/views/demos/access/frontend/index.vue'),
42-
meta: {
43-
icon: 'mdi:page-previous-outline',
44-
title: $t('page.demos.access.pageAccess'),
45-
},
46-
},
47-
{
48-
name: 'AccessFrontendButtonControl',
49-
path: 'button-control',
50-
component: () =>
51-
import('#/views/demos/access/frontend/button-control.vue'),
52-
meta: {
53-
icon: 'mdi:button-cursor',
54-
title: $t('page.demos.access.buttonControl'),
55-
},
56-
},
57-
{
58-
name: 'AccessFrontendMenuVisible403',
59-
path: 'menu-visible-403',
60-
component: () =>
61-
import('#/views/demos/access/frontend/menu-visible-403.vue'),
62-
meta: {
63-
authority: ['no-body'],
64-
icon: 'mdi:button-cursor',
65-
menuVisibleWithForbidden: true,
66-
title: $t('page.demos.access.menuVisible403'),
67-
},
68-
},
69-
70-
{
71-
name: 'AccessFrontendSuperVisible',
72-
path: 'super-visible',
73-
component: () =>
74-
import('#/views/demos/access/frontend/super-visible.vue'),
75-
meta: {
76-
authority: ['super'],
77-
icon: 'mdi:button-cursor',
78-
title: $t('page.demos.access.superVisible'),
79-
},
80-
},
81-
{
82-
name: 'AccessFrontendAdminVisible',
83-
path: 'admin-visible',
84-
component: () =>
85-
import('#/views/demos/access/frontend/admin-visible.vue'),
86-
meta: {
87-
authority: ['admin'],
88-
icon: 'mdi:button-cursor',
89-
title: $t('page.demos.access.adminVisible'),
90-
},
91-
},
92-
{
93-
name: 'AccessFrontendUserVisible',
94-
path: 'user-visible',
95-
component: () =>
96-
import('#/views/demos/access/frontend/user-visible.vue'),
97-
meta: {
98-
authority: ['user'],
99-
icon: 'mdi:button-cursor',
100-
title: $t('page.demos.access.userVisible'),
101-
},
102-
},
103-
],
10436
},
10537
{
106-
name: 'AccessBackend',
107-
path: 'backend',
108-
component: () => import('#/views/demos/access/backend/index.vue'),
38+
name: 'AccessButtonControl',
39+
path: 'button-control',
40+
component: () => import('#/views/demos/access/button-control.vue'),
10941
meta: {
110-
icon: 'mdi:cloud-key-outline',
111-
title: $t('page.demos.access.backendControl'),
42+
icon: 'mdi:button-cursor',
43+
title: $t('page.demos.access.buttonControl'),
44+
},
45+
},
46+
{
47+
name: 'AccessMenuVisible403',
48+
path: 'menu-visible-403',
49+
component: () =>
50+
import('#/views/demos/access/menu-visible-403.vue'),
51+
meta: {
52+
authority: ['no-body'],
53+
icon: 'mdi:button-cursor',
54+
menuVisibleWithForbidden: true,
55+
title: $t('page.demos.access.menuVisible403'),
56+
},
57+
},
58+
{
59+
name: 'AccessSuperVisible',
60+
path: 'super-visible',
61+
component: () => import('#/views/demos/access/super-visible.vue'),
62+
meta: {
63+
authority: ['super'],
64+
icon: 'mdi:button-cursor',
65+
title: $t('page.demos.access.superVisible'),
66+
},
67+
},
68+
{
69+
name: 'AccessAdminVisible',
70+
path: 'admin-visible',
71+
component: () => import('#/views/demos/access/admin-visible.vue'),
72+
meta: {
73+
authority: ['admin'],
74+
icon: 'mdi:button-cursor',
75+
title: $t('page.demos.access.adminVisible'),
76+
},
77+
},
78+
{
79+
name: 'AccessUserVisible',
80+
path: 'user-visible',
81+
component: () => import('#/views/demos/access/user-visible.vue'),
82+
meta: {
83+
authority: ['user'],
84+
icon: 'mdi:button-cursor',
85+
title: $t('page.demos.access.userVisible'),
11286
},
113-
children: [
114-
{
115-
name: 'AccessBackendPageControl',
116-
path: 'page-control',
117-
component: () =>
118-
import('#/views/demos/access/frontend/index.vue'),
119-
meta: {
120-
icon: 'mdi:page-previous-outline',
121-
title: $t('page.demos.access.pageAccess'),
122-
},
123-
},
124-
],
12587
},
12688
],
12789
},

apps/web-antd/src/views/demos/access/frontend/admin-visible.vue

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)