fix(auth): 允许版本工作动态证据写入

This commit is contained in:
2026-07-08 17:14:54 +08:00
parent a1007fd33d
commit e46757487b
2 changed files with 15 additions and 0 deletions

View File

@@ -56,6 +56,15 @@ describe('PermissionService', () => {
})).resolves.toBe(true); })).resolves.toBe(true);
}); });
it('allows a project member to write version-scoped work activity evidence', async () => {
versionFindUnique.mockResolvedValue({ id: 'version-1', projectId: 'project-1', members: [] });
projectMemberFindUnique.mockResolvedValue({ projectId: 'project-1', userId: 'dev-1', role: 'member' });
await expect(service.can(currentUser({ id: 'dev-1', roleId: 'role-dev' }), 'work-activity:manage', {
versionId: 'version-1',
})).resolves.toBe(true);
});
it('denies users who have a global role permission but are outside the resource scope', async () => { it('denies users who have a global role permission but are outside the resource scope', async () => {
versionFindUnique.mockResolvedValue({ id: 'version-1', projectId: 'project-1', members: [] }); versionFindUnique.mockResolvedValue({ id: 'version-1', projectId: 'project-1', members: [] });
projectMemberFindUnique.mockResolvedValue(null); projectMemberFindUnique.mockResolvedValue(null);

View File

@@ -27,6 +27,7 @@ const SYSTEM_ROLE_PERMISSIONS: Record<string, string[]> = {
'overtime:view', 'member:view', 'role:view', 'overtime:view', 'member:view', 'role:view',
'version.research:view', 'version.ui_plan:view', 'version.devtask:view', 'version.research:view', 'version.ui_plan:view', 'version.devtask:view',
'version.testcase:view', 'version.bug:view', 'version.testcase:view', 'version.bug:view',
'work-activity:manage',
], ],
'role-dev': [ 'role-dev': [
...VIEW_ONLY, ...VIEW_ONLY,
@@ -35,6 +36,7 @@ const SYSTEM_ROLE_PERMISSIONS: Record<string, string[]> = {
'version.research:view', 'version.product_plan:view', 'version.ui_plan:view', 'version.testcase:view', 'version.research:view', 'version.product_plan:view', 'version.ui_plan:view', 'version.testcase:view',
'xiaobao.warning:view', 'xiaobao.warning:view',
'overtime:view', 'overtime:create', 'overtime:view', 'overtime:create',
'work-activity:manage',
], ],
'role-test': [ 'role-test': [
...VIEW_ONLY, ...VIEW_ONLY,
@@ -43,6 +45,7 @@ const SYSTEM_ROLE_PERMISSIONS: Record<string, string[]> = {
'version.research:view', 'version.product_plan:view', 'version.ui_plan:view', 'version.devtask:view', 'version.research:view', 'version.product_plan:view', 'version.ui_plan:view', 'version.devtask:view',
'xiaobao.warning:view', 'xiaobao.warning:view',
'overtime:view', 'overtime:create', 'overtime:view', 'overtime:create',
'work-activity:manage',
], ],
'role-design': [ 'role-design': [
...VIEW_ONLY, ...VIEW_ONLY,
@@ -51,6 +54,7 @@ const SYSTEM_ROLE_PERMISSIONS: Record<string, string[]> = {
'version.testcase:view', 'version.bug:view', 'version.testcase:view', 'version.bug:view',
'xiaobao.warning:view', 'xiaobao.warning:view',
'overtime:view', 'overtime:create', 'overtime:view', 'overtime:create',
'work-activity:manage',
], ],
'role-lead': [ 'role-lead': [
...VIEW_ONLY, ...VIEW_ONLY,
@@ -60,6 +64,7 @@ const SYSTEM_ROLE_PERMISSIONS: Record<string, string[]> = {
'version.bug:view', 'version.bug:create', 'version.bug:edit', 'version.bug:delete', 'version.bug:view', 'version.bug:create', 'version.bug:edit', 'version.bug:delete',
'xiaobao.warning:view', 'xiaobao.warning:view',
'overtime:view', 'overtime:create', 'overtime:export', 'overtime:view', 'overtime:create', 'overtime:export',
'work-activity:manage',
], ],
}; };
@@ -79,6 +84,7 @@ const PROJECT_ROLE_PERMISSIONS: Record<string, string[]> = {
'version.bug:view', 'version.bug:create', 'version.bug:edit', 'version.bug:view', 'version.bug:create', 'version.bug:edit',
'overtime:view', 'overtime:create', 'overtime:view', 'overtime:create',
'xiaobao.warning:view', 'xiaobao.warning:view',
'work-activity:manage',
], ],
viewer: [ viewer: [
'project:view', 'project:view',