Browse Source

feat(permissions): 使用常量权限代码替代魔术字符

pull/1047/head
colin 1 year ago
parent
commit
eac366610a
  1. 14
      apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue
  2. 5
      apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitRoleTable.vue
  3. 5
      apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitUserTable.vue
  4. 11
      apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue
  5. 3
      apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue
  6. 15
      apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue
  7. 1
      apps/vben5/packages/@abp/identity/src/constants/index.ts
  8. 47
      apps/vben5/packages/@abp/identity/src/constants/permissions.ts
  9. 1
      apps/vben5/packages/@abp/identity/src/index.ts

14
apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue

@ -5,6 +5,7 @@ import type { IdentityClaimTypeDto } from '../../types/claim-types';
import { defineAsyncComponent, h } from 'vue';
import { useAccess } from '@vben/access';
import { useVbenModal } from '@vben/common-ui';
import { createIconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales';
@ -14,6 +15,7 @@ import { DeleteOutlined, EditOutlined } from '@ant-design/icons-vue';
import { Button, Modal } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/claim-types';
import { IdentityClaimTypePermissions } from '../../constants/permissions';
import { ValueType } from '../../types/claim-types';
defineOptions({
@ -26,6 +28,8 @@ const ClaimTypeModal = defineAsyncComponent(
const CheckIcon = createIconifyIcon('ant-design:check-outlined');
const CloseIcon = createIconifyIcon('ant-design:close-outlined');
const { hasAccessByCodes } = useAccess();
const formOptions: VbenFormProps = {
//
collapsed: false,
@ -102,6 +106,10 @@ const gridOptions: VxeGridProps<IdentityClaimTypeDto> = {
fixed: 'right',
slots: { default: 'action' },
title: $t('AbpUi.Actions'),
visible: hasAccessByCodes([
IdentityClaimTypePermissions.Update,
IdentityClaimTypePermissions.Delete,
]),
width: 180,
},
],
@ -172,7 +180,7 @@ const handleDelete = (row: IdentityClaimTypeDto) => {
<template #toolbar-tools>
<Button
type="primary"
v-access:code="['AbpIdentity.IdentityClaimTypes.Create']"
v-access:code="[IdentityClaimTypePermissions.Create]"
@click="handleAdd"
>
{{ $t('AbpIdentity.IdentityClaim:New') }}
@ -197,7 +205,7 @@ const handleDelete = (row: IdentityClaimTypeDto) => {
:icon="h(EditOutlined)"
block
type="link"
v-access:code="['AbpIdentity.IdentityClaimTypes.Update']"
v-access:code="[IdentityClaimTypePermissions.Update]"
@click="handleEdit(row)"
>
{{ $t('AbpUi.Edit') }}
@ -209,7 +217,7 @@ const handleDelete = (row: IdentityClaimTypeDto) => {
block
danger
type="link"
v-access:code="['AbpIdentity.IdentityClaimTypes.Delete']"
v-access:code="[IdentityClaimTypePermissions.Delete]"
@click="handleDelete(row)"
>
{{ $t('AbpUi.Delete') }}

5
apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitRoleTable.vue

@ -17,6 +17,7 @@ import { Button, Modal } from 'ant-design-vue';
import { addRoles, getRoleListApi } from '../../api/organization-units';
import { removeOrganizationUnit } from '../../api/roles';
import { OrganizationUnitPermissions } from '../../constants/permissions';
defineOptions({
name: 'OrganizationUnitRoleTable',
@ -35,7 +36,7 @@ const { hasAccessByCodes } = useAccess();
const getAddRoleEnabled = computed(() => {
return (
props.selectedKey &&
hasAccessByCodes(['AbpIdentity.OrganizationUnits.ManageRoles'])
hasAccessByCodes([OrganizationUnitPermissions.ManageRoles])
);
});
@ -164,7 +165,7 @@ watch(() => props.selectedKey, onRefresh);
:icon="h(DeleteOutlined)"
danger
type="link"
v-access:code="['AbpIdentity.OrganizationUnits.ManageRoles']"
v-access:code="[OrganizationUnitPermissions.ManageRoles]"
@click="onDelete(row)"
>
{{ $t('AbpUi.Delete') }}

5
apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitUserTable.vue

@ -15,6 +15,7 @@ import { Button, Modal } from 'ant-design-vue';
import { addMembers, getUserListApi } from '../../api/organization-units';
import { removeOrganizationUnit } from '../../api/users';
import { OrganizationUnitPermissions } from '../../constants/permissions';
defineOptions({
name: 'OrganizationUnitUserTable',
@ -33,7 +34,7 @@ const { hasAccessByCodes } = useAccess();
const getAddMemberEnabled = computed(() => {
return (
props.selectedKey &&
hasAccessByCodes(['AbpIdentity.OrganizationUnits.ManageUsers'])
hasAccessByCodes([OrganizationUnitPermissions.ManageUsers])
);
});
@ -167,7 +168,7 @@ watch(() => props.selectedKey, onRefresh);
:icon="h(DeleteOutlined)"
danger
type="link"
v-access:code="['AbpIdentity.OrganizationUnits.ManageUsers']"
v-access:code="[OrganizationUnitPermissions.ManageUsers]"
@click="onDelete(row)"
>
{{ $t('AbpUi.Delete') }}

11
apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue

@ -22,6 +22,7 @@ import {
import { Button, Dropdown, Menu, Modal, Tag } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/roles';
import { IdentitRolePermissions } from '../../constants/permissions';
defineOptions({
name: 'RoleTable',
@ -155,7 +156,7 @@ const handleMenuClick = async (row: IdentityRoleDto, info: MenuInfo) => {
<template #toolbar-tools>
<Button
type="primary"
v-access:code="['AbpIdentity.Roles.Create']"
v-access:code="[IdentitRolePermissions.Create]"
@click="handleAdd"
>
{{ $t('AbpIdentity.NewRole') }}
@ -180,7 +181,7 @@ const handleMenuClick = async (row: IdentityRoleDto, info: MenuInfo) => {
:icon="h(EditOutlined)"
block
type="link"
v-access:code="['AbpIdentity.Roles.Update']"
v-access:code="[IdentitRolePermissions.Update]"
@click="handleEdit(row)"
>
{{ $t('AbpUi.Edit') }}
@ -192,7 +193,7 @@ const handleMenuClick = async (row: IdentityRoleDto, info: MenuInfo) => {
block
danger
type="link"
v-access:code="['AbpIdentity.Roles.Delete']"
v-access:code="[IdentitRolePermissions.Delete]"
@click="handleDelete(row)"
>
{{ $t('AbpUi.Delete') }}
@ -204,7 +205,7 @@ const handleMenuClick = async (row: IdentityRoleDto, info: MenuInfo) => {
<Menu @click="(info) => handleMenuClick(row, info)">
<MenuItem
v-if="
hasAccessByCodes(['AbpIdentity.Roles.ManagePermissions'])
hasAccessByCodes([IdentitRolePermissions.ManagePermissions])
"
key="permissions"
:icon="h(PermissionsOutlined)"
@ -212,7 +213,7 @@ const handleMenuClick = async (row: IdentityRoleDto, info: MenuInfo) => {
{{ $t('AbpPermissionManagement.Permissions') }}
</MenuItem>
<MenuItem
v-if="hasAccessByCodes(['AbpIdentity.Roles.ManageClaims'])"
v-if="hasAccessByCodes([IdentitRolePermissions.ManageClaims])"
key="claims"
:icon="h(ClaimOutlined)"
>

3
apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue

@ -13,6 +13,7 @@ import { DeleteOutlined } from '@ant-design/icons-vue';
import { Button, Modal } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/security-logs';
import { SecurityLogPermissions } from '../../constants/permissions';
defineOptions({
name: 'SecurityLogTable',
@ -196,7 +197,7 @@ const handleDelete = (row: SecurityLogDto) => {
block
danger
type="link"
v-access:code="['AbpAuditing.SecurityLog.Delete']"
v-access:code="[SecurityLogPermissions.Delete]"
@click="handleDelete(row)"
>
{{ $t('AbpUi.Delete') }}

15
apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue

@ -22,6 +22,7 @@ import {
import { Button, Dropdown, Menu, Modal } from 'ant-design-vue';
import { deleteApi, getPagedListApi } from '../../api/users';
import { IdentityUserPermissions } from '../../constants/permissions';
defineOptions({
name: 'UserTable',
@ -177,7 +178,7 @@ const handleMenuClick = async (row: IdentityUserDto, info: MenuInfo) => {
<template #toolbar-tools>
<Button
type="primary"
v-access:code="['AbpIdentity.Users.Create']"
v-access:code="[IdentityUserPermissions.Create]"
@click="handleAdd"
>
{{ $t('AbpIdentity.NewUser') }}
@ -198,7 +199,7 @@ const handleMenuClick = async (row: IdentityUserDto, info: MenuInfo) => {
:icon="h(EditOutlined)"
block
type="link"
v-access:code="['AbpIdentity.Users.Update']"
v-access:code="[IdentityUserPermissions.Update]"
@click="handleEdit(row)"
>
{{ $t('AbpUi.Edit') }}
@ -210,7 +211,7 @@ const handleMenuClick = async (row: IdentityUserDto, info: MenuInfo) => {
block
danger
type="link"
v-access:code="['AbpIdentity.Users.Delete']"
v-access:code="[IdentityUserPermissions.Delete]"
@click="handleDelete(row)"
>
{{ $t('AbpUi.Delete') }}
@ -222,7 +223,9 @@ const handleMenuClick = async (row: IdentityUserDto, info: MenuInfo) => {
<Menu @click="(info) => handleMenuClick(row, info)">
<MenuItem
v-if="
hasAccessByCodes(['AbpIdentity.Users.ManagePermissions'])
hasAccessByCodes([
IdentityUserPermissions.ManagePermissions,
])
"
key="permissions"
:icon="h(PermissionsOutlined)"
@ -230,7 +233,9 @@ const handleMenuClick = async (row: IdentityUserDto, info: MenuInfo) => {
{{ $t('AbpPermissionManagement.Permissions') }}
</MenuItem>
<MenuItem
v-if="hasAccessByCodes(['AbpIdentity.Users.ManageClaims'])"
v-if="
hasAccessByCodes([IdentityUserPermissions.ManageClaims])
"
key="claims"
:icon="h(ClaimOutlined)"
>

1
apps/vben5/packages/@abp/identity/src/constants/index.ts

@ -0,0 +1 @@
export * from './permissions';

47
apps/vben5/packages/@abp/identity/src/constants/permissions.ts

@ -0,0 +1,47 @@
/** 用户权限 */
export const IdentityUserPermissions = {
/** 新增 */
Create: 'AbpIdentity.Users.Create',
/** 删除 */
Delete: 'AbpIdentity.Users.Delete',
/** 管理声明 */
ManageClaims: 'AbpIdentity.Users.ManageClaims',
/** 管理权限 */
ManagePermissions: 'AbpIdentity.Users.ManagePermissions',
/** 更新 */
Update: 'AbpIdentity.Users.Update',
};
/** 角色权限 */
export const IdentitRolePermissions = {
/** 新增 */
Create: 'AbpIdentity.Roles.Create',
/** 删除 */
Delete: 'AbpIdentity.Roles.Delete',
/** 管理声明 */
ManageClaims: 'AbpIdentity.Roles.ManageClaims',
/** 管理权限 */
ManagePermissions: 'AbpIdentity.Roles.ManagePermissions',
/** 更新 */
Update: 'AbpIdentity.Roles.Update',
};
/** 声明类型权限 */
export const IdentityClaimTypePermissions = {
/** 新增 */
Create: 'AbpIdentity.IdentityClaimTypes.Create',
/** 删除 */
Delete: 'AbpIdentity.IdentityClaimTypes.Delete',
/** 更新 */
Update: 'AbpIdentity.IdentityClaimTypes.Update',
};
/** 组织机构权限 */
export const OrganizationUnitPermissions = {
/** 管理角色 */
ManageRoles: 'AbpIdentity.OrganizationUnits.ManageRoles',
/** 管理用户 */
ManageUsers: 'AbpIdentity.OrganizationUnits.ManageUsers',
};
/** 安全日志权限 */
export const SecurityLogPermissions = {
/** 删除 */
Delete: 'AbpAuditing.SecurityLog.Delete',
};

1
apps/vben5/packages/@abp/identity/src/index.ts

@ -1,2 +1,3 @@
export * from './components';
export * from './constants';
export * from './types';

Loading…
Cancel
Save