Skip to content
Merged
25 changes: 17 additions & 8 deletions src/auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,24 @@ export class AuthController {
@Body('permissionLevel') permissionLevel: PermissionLevel,
@Body('groupId') groupId: string,
) {
return await this.authService.invite(req.user.id, email, {
role,
inviteUrl,
registerUrl,
namespaceId,
resourceId,
permissionLevel,
groupId,
const actions: Array<Promise<any>> = [];
const userEmails = email.split(',');
userEmails.forEach((userEmail) => {
if (userEmail) {
actions.push(
this.authService.invite(req.user.id, userEmail, {
role,
inviteUrl,
registerUrl,
namespaceId,
resourceId,
permissionLevel,
groupId,
}),
);
}
});
return await Promise.all(actions);
}

@Post('invite/confirm')
Expand Down
8 changes: 4 additions & 4 deletions src/groups/dto/add-group-user.dto.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Expose } from 'class-transformer';
import { IsNotEmpty, IsString } from 'class-validator';
import { IsString, IsArray } from 'class-validator';

export class AddGroupUserDto {
@IsString()
@IsNotEmpty()
@IsArray()
@IsString({ each: true })
@Expose({ name: 'user_id' })
userId: string;
userIds: string[];
}
14 changes: 9 additions & 5 deletions src/groups/groups.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,15 @@ export class GroupsController {
'current user is not owner of this namespace',
);
}
await this.groupsService.addGroupUser(
namespaceId,
groupId,
addGroupUserDto.userId,
);
const actions: Array<Promise<any>> = [];
addGroupUserDto.userIds.forEach((userId) => {
if (userId) {
actions.push(
this.groupsService.addGroupUser(namespaceId, groupId, userId),
);
}
});
await Promise.all(actions);
}

@Delete(':groupId/users/:userId')
Expand Down
2 changes: 2 additions & 0 deletions src/namespaces/dto/namespace-member.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
export class NamespaceMemberDto {
id: string;
email: string;
role: string;
username: string;
}
7 changes: 6 additions & 1 deletion src/namespaces/namespaces.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,12 @@ export class NamespacesService {
relations: ['user'],
});
return members.map((member) => {
return { email: member.user.email, role: member.role };
return {
role: member.role,
id: member.user.id,
email: member.user.email,
username: member.user.username,
};
});
}

Expand Down