Hotfix: Missing relation bug
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Nicolai Ort 2021-01-16 20:32:40 +01:00
parent 3766899c83
commit b167ba07f7
3 changed files with 15 additions and 8 deletions

View File

@ -4,7 +4,6 @@ import {
IsString IsString
} from "class-validator"; } from "class-validator";
import { ChildEntity, Column } from "typeorm"; import { ChildEntity, Column } from "typeorm";
import { ResponsePrincipal } from '../responses/ResponsePrincipal';
import { ResponseUserGroup } from '../responses/ResponseUserGroup'; import { ResponseUserGroup } from '../responses/ResponseUserGroup';
import { Principal } from './Principal'; import { Principal } from './Principal';
@ -34,7 +33,7 @@ export class UserGroup extends Principal {
/** /**
* Turns this entity into it's response class. * Turns this entity into it's response class.
*/ */
public toResponse(): ResponsePrincipal { public toResponse(): ResponseUserGroup {
return new ResponseUserGroup(this); return new ResponseUserGroup(this);
} }
} }

View File

@ -6,8 +6,8 @@ import {
IsString IsString
} from "class-validator"; } from "class-validator";
import { User } from '../entities/User'; import { User } from '../entities/User';
import { UserGroup } from '../entities/UserGroup';
import { ResponsePrincipal } from './ResponsePrincipal'; import { ResponsePrincipal } from './ResponsePrincipal';
import { ResponseUserGroup } from './ResponseUserGroup';
/** /**
* Defines the user response. * Defines the user response.
@ -66,7 +66,7 @@ export class ResponseUser extends ResponsePrincipal {
*/ */
@IsArray() @IsArray()
@IsOptional() @IsOptional()
groups: UserGroup[]; groups: ResponseUserGroup[];
/** /**
* The user's permissions. * The user's permissions.
@ -90,7 +90,11 @@ export class ResponseUser extends ResponsePrincipal {
this.username = user.username; this.username = user.username;
this.enabled = user.enabled; this.enabled = user.enabled;
this.profilePic = user.profilePic; this.profilePic = user.profilePic;
this.groups = user.groups; if (user.groups) {
for (let group of user.groups) {
this.groups.push(group.toResponse());
}
}
this.permissions = user.allPermissions; this.permissions = user.allPermissions;
this.groups.forEach(function (g) { delete g.permissions }); this.groups.forEach(function (g) { delete g.permissions });
} }

View File

@ -1,6 +1,6 @@
import { IsArray, IsNotEmpty, IsOptional, IsString } from "class-validator"; import { IsArray, IsNotEmpty, IsOptional, IsString } from "class-validator";
import { Permission } from '../entities/Permission';
import { UserGroup } from '../entities/UserGroup'; import { UserGroup } from '../entities/UserGroup';
import { ResponsePermission } from './ResponsePermission';
import { ResponsePrincipal } from './ResponsePrincipal'; import { ResponsePrincipal } from './ResponsePrincipal';
/** /**
@ -26,7 +26,7 @@ export class ResponseUserGroup extends ResponsePrincipal {
*/ */
@IsArray() @IsArray()
@IsOptional() @IsOptional()
permissions: Permission[]; permissions: ResponsePermission[];
/** /**
* Creates a ResponseUserGroup object from a userGroup. * Creates a ResponseUserGroup object from a userGroup.
@ -36,6 +36,10 @@ export class ResponseUserGroup extends ResponsePrincipal {
super(group); super(group);
this.name = group.name; this.name = group.name;
this.description = group.description; this.description = group.description;
this.permissions = group.permissions; if (group.permissions) {
for (let permission of group.permissions) {
this.permissions.push(permission.toResponse());
}
}
} }
} }