69494d7549
- GroupsService: listForTenant/create/update/remove/getImpact/listMembers/addMembers/removeMember/addUserToDefaultGroup, jede Query tenantId-gescoped (T-15-02/T-15-12)
- isDefault:true läuft in einer Transaktion (updateMany+update), D-13
- getImpact liefert { memberCount, grantCount } für den Löschdialog (D-17)
- removeMember beschränkt sich auf source:MANUAL (D-19)
- GroupsController: 8 rollengeschützte Routen unter /groups
- 19 Tests in groups.service.spec.ts, hand-rolled In-Memory-Fake
11 lines
231 B
TypeScript
11 lines
231 B
TypeScript
import { IsArray, IsString } from 'class-validator';
|
|
|
|
/**
|
|
* DTO für das manuelle Hinzufügen von Mitgliedern zu einer Gruppe.
|
|
*/
|
|
export class AddGroupMembersDto {
|
|
@IsArray()
|
|
@IsString({ each: true })
|
|
userIds!: string[];
|
|
}
|