diff --git a/frontend/src/openapi/models/personalDashboardProjectDetailsSchema.ts b/frontend/src/openapi/models/personalDashboardProjectDetailsSchema.ts index b74e064d4d..30dfee7472 100644 --- a/frontend/src/openapi/models/personalDashboardProjectDetailsSchema.ts +++ b/frontend/src/openapi/models/personalDashboardProjectDetailsSchema.ts @@ -23,7 +23,6 @@ export interface PersonalDashboardProjectDetailsSchema { owners: PersonalDashboardProjectDetailsSchemaOwners; /** * The list of roles that the user has in this project. - * @minItems 1 */ roles: PersonalDashboardProjectDetailsSchemaRolesItem[]; } diff --git a/src/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.ts b/src/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.ts index 21e8ffb5b3..2e5ee74758 100644 --- a/src/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.ts +++ b/src/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.ts @@ -389,3 +389,17 @@ test('should return Unleash admins', async () => { }, ]); }); + +test('should return System owner for default project if nothing else is set', async () => { + await loginUser('new_user@test.com'); + + const { body } = await app.request.get( + `/api/admin/personal-dashboard/default`, + ); + + expect(body.owners).toMatchObject([ + { + ownerType: 'system', + }, + ]); +}); diff --git a/src/lib/features/project/project-owners-read-model.ts b/src/lib/features/project/project-owners-read-model.ts index dcdf99215b..adf02fa6db 100644 --- a/src/lib/features/project/project-owners-read-model.ts +++ b/src/lib/features/project/project-owners-read-model.ts @@ -161,6 +161,6 @@ export class ProjectOwnersReadModel implements IProjectOwnersReadModel { async getProjectOwners(projectId: string): Promise { const owners = await this.getProjectOwnersDictionary(); - return owners[projectId] ?? []; + return owners[projectId] ?? [{ ownerType: 'system' }]; } } diff --git a/src/lib/openapi/spec/personal-dashboard-project-details-schema.ts b/src/lib/openapi/spec/personal-dashboard-project-details-schema.ts index 35114079e1..d42718f0f4 100644 --- a/src/lib/openapi/spec/personal-dashboard-project-details-schema.ts +++ b/src/lib/openapi/spec/personal-dashboard-project-details-schema.ts @@ -119,7 +119,6 @@ export const personalDashboardProjectDetailsSchema = { roles: { type: 'array', description: 'The list of roles that the user has in this project.', - minItems: 1, items: { type: 'object', description: 'An Unleash role.',