🚧 Permissions
This commit is contained in:
parent
f50e7f0b3a
commit
1cf35f016b
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user