Hotfix: Missing relation bug
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Nicolai Ort 2021-01-16 20:59:48 +01:00
parent de36a24191
commit 6e6979cfe3
4 changed files with 19 additions and 20 deletions

View File

@ -138,8 +138,10 @@ export class User extends Principal {
if (!this.groups) { return returnPermissions; }
for (let group of this.groups) {
for (let permission of group.permissions) {
returnPermissions.push(permission);
if (group.permissions) {
for (let permission of group.permissions) {
returnPermissions.push(permission);
}
}
}
return returnPermissions;
@ -159,8 +161,10 @@ export class User extends Principal {
if (!this.groups) { return returnPermissions; }
for (let group of this.groups) {
for (let permission of group.permissions) {
returnPermissions.push(permission.toString());
if (group.permissions) {
for (let permission of group.permissions) {
returnPermissions.push(permission.toString());
}
}
}
return Array.from(new Set(returnPermissions));

View File

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

View File

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

View File

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