mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-23 00:22:19 +01:00
fix: projects needs at least one owner
This commit is contained in:
parent
0ffd01f54b
commit
f9ef945404
@ -190,10 +190,10 @@ export default class ProjectService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (role.name === RoleName.ADMIN) {
|
if (role.name === RoleName.OWNER) {
|
||||||
const users = await this.accessService.getUsersForRole(role.id);
|
const users = await this.accessService.getUsersForRole(role.id);
|
||||||
if (users.length < 2) {
|
if (users.length < 2) {
|
||||||
throw new Error('A project must have at least one admin');
|
throw new Error('A project must have at least one owner');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,5 +23,6 @@ unleash.start(
|
|||||||
versionCheck: {
|
versionCheck: {
|
||||||
enable: false,
|
enable: false,
|
||||||
},
|
},
|
||||||
|
secureHeaders: true,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
@ -377,3 +377,25 @@ test.serial('should remove user from the project', async t => {
|
|||||||
|
|
||||||
t.is(memberUsers.length, 0);
|
t.is(memberUsers.length, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test.serial('should not remove user from the project', async t => {
|
||||||
|
const project = {
|
||||||
|
id: 'remove-users-not-allowed',
|
||||||
|
name: 'New project',
|
||||||
|
description: 'Blah',
|
||||||
|
};
|
||||||
|
await projectService.createProject(project, user);
|
||||||
|
|
||||||
|
const roles = await stores.accessStore.getRolesForProject(project.id);
|
||||||
|
const ownerRole = roles.find(r => r.name === RoleName.OWNER);
|
||||||
|
|
||||||
|
await t.throwsAsync(
|
||||||
|
async () => {
|
||||||
|
await projectService.removeUser(project.id, ownerRole.id, user.id);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
instanceOf: Error,
|
||||||
|
message: 'A project must have at least one owner',
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user