Compare commits
No commits in common. "1cf35f016b0aeb0f1224648b301044b2ea76dc60" and "aa565c6b344f62521b9b53575ffce36e8b77af74" have entirely different histories.
1cf35f016b
...
aa565c6b34
@ -2,7 +2,6 @@ import { Entity, Column, OneToMany, ManyToOne, PrimaryGeneratedColumn, Generated
|
|||||||
import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsString, isUUID, } from "class-validator";
|
import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsString, isUUID, } from "class-validator";
|
||||||
import { UserGroup } from './UserGroup';
|
import { UserGroup } from './UserGroup';
|
||||||
import { Permission } from './Permission';
|
import { Permission } from './Permission';
|
||||||
import { UserAction } from './UserAction';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines a admin user.
|
* Defines a admin user.
|
||||||
@ -10,114 +9,101 @@ 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;
|
||||||
|
|
||||||
/**
|
|
||||||
* actions
|
|
||||||
*/
|
|
||||||
@OneToMany(() => UserAction, action => action.user)
|
|
||||||
actions: UserAction
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* calculate all permissions
|
* calculate all permissions
|
||||||
*/
|
*/
|
||||||
public get calc_permissions(): Permission[] {
|
public get calc_permissions(): Permission[] {
|
||||||
let final_permissions = []
|
let final_permissions = this.groups.forEach((permission) => {
|
||||||
this.groups.forEach((permission) => {
|
console.log(permission);
|
||||||
if (!final_permissions.includes(permission)) {
|
|
||||||
final_permissions.push(permission)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
this.permissions.forEach((permission) => {
|
// TODO: add user permissions on top of group permissions + return
|
||||||
if (!final_permissions.includes(permission)) {
|
return []
|
||||||
final_permissions.push(permission)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return final_permissions
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
import { PrimaryGeneratedColumn, Column, OneToMany, Entity, ManyToOne } from "typeorm";
|
import { PrimaryGeneratedColumn, Column, OneToMany, Entity } from "typeorm";
|
||||||
import {
|
import {
|
||||||
IsInt,
|
IsInt,
|
||||||
IsNotEmpty,
|
IsNotEmpty,
|
||||||
IsOptional,
|
IsOptional,
|
||||||
IsString,
|
IsString,
|
||||||
} from "class-validator";
|
} from "class-validator";
|
||||||
import { User } from './User';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines the UserAction interface.
|
* Defines the UserAction interface.
|
||||||
@ -20,11 +19,8 @@ export class UserAction {
|
|||||||
@IsInt()
|
@IsInt()
|
||||||
id: number;
|
id: number;
|
||||||
|
|
||||||
/**
|
// TODO:
|
||||||
* user
|
// user: relation
|
||||||
*/
|
|
||||||
@ManyToOne(() => User, user => user.actions)
|
|
||||||
user: User
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The actions's target (e.g. Track#2)
|
* The actions's target (e.g. Track#2)
|
||||||
@ -45,7 +41,7 @@ export class UserAction {
|
|||||||
/**
|
/**
|
||||||
* The description of change (before-> after; e.g. distance:15->17)
|
* The description of change (before-> after; e.g. distance:15->17)
|
||||||
*/
|
*/
|
||||||
@Column({ nullable: true })
|
@Column({nullable: true})
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
changed: string;
|
changed: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user