🚧 Permissions

This commit is contained in:
Philipp Dormann 2020-12-02 19:34:43 +01:00
parent f50e7f0b3a
commit 1cf35f016b

View File

@ -10,90 +10,90 @@ import { UserAction } from './UserAction';
@Entity() @Entity()
export class User { export class User {
/** /**
* autogenerated unique id (primary key). * autogenerated unique id (primary key).
*/ */
@PrimaryGeneratedColumn() @PrimaryGeneratedColumn()
@IsOptional() @IsOptional()
@IsInt() @IsInt()
id: number; id: number;
/** /**
* autogenerated uuid * autogenerated uuid
*/ */
@IsOptional() @IsOptional()
@IsInt() @IsInt()
@Generated("uuid") @Generated("uuid")
uuid: string; uuid: string;
/** /**
* user email * user email
*/ */
@IsEmail() @IsEmail()
email: string; email: string;
/** /**
* username * username
*/ */
@IsString() @IsString()
username: string; username: string;
/** /**
* firstname * firstname
*/ */
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
firstname: string; firstname: string;
/** /**
* middlename * middlename
*/ */
@IsString() @IsString()
@IsOptional() @IsOptional()
middlename: string; middlename: string;
/** /**
* lastname * lastname
*/ */
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
lastname: string; lastname: string;
/** /**
* password * password
*/ */
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
password: string; password: string;
/** /**
* permissions * permissions
*/ */
@ManyToOne(() => Permission, permission => permission.users) @ManyToOne(() => Permission, permission => permission.users)
permissions: Permission[]; permissions: Permission[];
/** /**
* groups * groups
*/ */
@ManyToMany(() => UserGroup) @ManyToMany(() => UserGroup)
@JoinTable() @JoinTable()
groups: UserGroup[]; groups: UserGroup[];
/** /**
* is user enabled? * is user enabled?
*/ */
@IsBoolean() @IsBoolean()
enabled: boolean; enabled: boolean;
/** /**
* jwt refresh count * jwt refresh count
*/ */
@IsInt() @IsInt()
@Column({ default: 1 }) @Column({ default: 1 })
refreshTokenCount: number; refreshTokenCount: number;
/** /**
* profilepic * profilepic
*/ */
@IsString() @IsString()
profilepic: string; profilepic: string;
@ -107,10 +107,17 @@ export class User {
* calculate all permissions * calculate all permissions
*/ */
public get calc_permissions(): Permission[] { public get calc_permissions(): Permission[] {
let final_permissions = this.groups.forEach((permission) => { let final_permissions = []
console.log(permission); this.groups.forEach((permission) => {
if (!final_permissions.includes(permission)) {
final_permissions.push(permission)
}
}) })
// TODO: add user permissions on top of group permissions + return this.permissions.forEach((permission) => {
return [] if (!final_permissions.includes(permission)) {
final_permissions.push(permission)
}
})
return final_permissions
} }
} }