diff --git a/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json b/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json index 70fbb9d38..083b5adf2 100644 --- a/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json +++ b/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json @@ -19,7 +19,8 @@ "claimTypes": "Claim Types", "securityLogs": "Security Logs", "organizationUnits": "Organization Units", - "auditLogs": "Audit Logs" + "auditLogs": "Audit Logs", + "sessions": "Sessions" }, "permissions": { "title": "Permissions", diff --git a/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json b/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json index 483ad8cde..3de89786d 100644 --- a/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json +++ b/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json @@ -19,7 +19,8 @@ "claimTypes": "身份标识", "securityLogs": "安全日志", "organizationUnits": "组织机构", - "auditLogs": "审计日志" + "auditLogs": "审计日志", + "sessions": "会话管理" }, "permissions": { "title": "权限管理", diff --git a/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts b/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts index 376a6f185..d0fa18b44 100644 --- a/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts +++ b/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts @@ -79,6 +79,15 @@ const routes: RouteRecordRaw[] = [ icon: 'clarity:organization-line', }, }, + { + component: () => import('#/views/identity/sessions/index.vue'), + name: 'IdentitySessions', + path: '/manage/identity/sessions', + meta: { + title: $t('abp.manage.identity.sessions'), + icon: 'carbon:prompt-session', + }, + }, ], }, { diff --git a/apps/vben5/apps/app-antd/src/views/identity/sessions/index.vue b/apps/vben5/apps/app-antd/src/views/identity/sessions/index.vue new file mode 100644 index 000000000..ba2913376 --- /dev/null +++ b/apps/vben5/apps/app-antd/src/views/identity/sessions/index.vue @@ -0,0 +1,15 @@ + + + + + + + diff --git a/apps/vben5/packages/@abp/identity/package.json b/apps/vben5/packages/@abp/identity/package.json index e0f14b212..47dfea8dc 100644 --- a/apps/vben5/packages/@abp/identity/package.json +++ b/apps/vben5/packages/@abp/identity/package.json @@ -33,6 +33,10 @@ "@vben/layouts": "workspace:*", "@vben/locales": "workspace:*", "ant-design-vue": "catalog:", + "lodash.debounce": "catalog:", "vue": "catalog:*" + }, + "devDependencies": { + "@types/lodash.debounce": "catalog:" } } diff --git a/apps/vben5/packages/@abp/identity/src/components/index.ts b/apps/vben5/packages/@abp/identity/src/components/index.ts index 6e461363c..15b90b088 100644 --- a/apps/vben5/packages/@abp/identity/src/components/index.ts +++ b/apps/vben5/packages/@abp/identity/src/components/index.ts @@ -2,5 +2,6 @@ export { default as ClaimTypeTable } from './claim-types/ClaimTypeTable.vue'; export { default as OrganizationUnitPage } from './organization-units/OrganizationUnitPage.vue'; export { default as RoleTable } from './roles/RoleTable.vue'; export { default as SecurityLogTable } from './security-logs/SecurityLogTable.vue'; +export { default as SessionTable } from './sessions/SessionTable.vue'; export { default as UserSessionTable } from './sessions/UserSessionTable.vue'; export { default as UserTable } from './users/UserTable.vue'; diff --git a/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue b/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue new file mode 100644 index 000000000..a111f43f7 --- /dev/null +++ b/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue @@ -0,0 +1,243 @@ + + + + + + onFieldChange('userId', val)" + @search="onGetUsers" + /> + + + + {{ row.device }} + + + {{ $t('AbpIdentity.CurrentSession') }} + + + + + + + + {{ $t('AbpIdentity.RevokeSession') }} + + + + + + +