parent
b47fad2c3a
commit
f1629440fe
|
@ -22,6 +22,7 @@
|
|||
],
|
||||
"license": "CC-BY-NC-SA-4.0",
|
||||
"dependencies": {
|
||||
"argon2": "^0.27.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"class-transformer": "^0.3.1",
|
||||
"class-validator": "^0.12.2",
|
||||
|
@ -39,7 +40,8 @@
|
|||
"routing-controllers-openapi": "^2.1.0",
|
||||
"swagger-ui-express": "^4.1.5",
|
||||
"typeorm": "^0.2.29",
|
||||
"typeorm-routing-controllers-extensions": "^0.2.0"
|
||||
"typeorm-routing-controllers-extensions": "^0.2.0",
|
||||
"uuid": "^8.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/cors": "^2.8.8",
|
||||
|
@ -49,6 +51,7 @@
|
|||
"@types/multer": "^1.4.4",
|
||||
"@types/node": "^14.14.9",
|
||||
"@types/swagger-ui-express": "^4.1.2",
|
||||
"@types/uuid": "^8.3.0",
|
||||
"dotenv-safe": "^8.2.0",
|
||||
"nodemon": "^2.0.6",
|
||||
"sqlite3": "^5.0.0",
|
||||
|
@ -61,4 +64,4 @@
|
|||
"build": "tsc",
|
||||
"docs": "typedoc --out docs src"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
import { IsInt, IsOptional, IsPhoneNumber, IsString } from 'class-validator';
|
||||
import { User } from '../models/User';
|
||||
import { getConnectionManager } from 'typeorm';
|
||||
import * as argon2 from "argon2";
|
||||
import { IsInt, IsOptional, IsPhoneNumber, IsString, IsUUID } from 'class-validator';
|
||||
import * as uuid from 'uuid';
|
||||
import { UserGroupNotFoundError, UsernameOrEmailNeededError } from '../errors/CreateUserErrors';
|
||||
import { UserGroup } from './UserGroup';
|
||||
import { User } from '../models/User';
|
||||
|
||||
export class CreateUser {
|
||||
@IsString()
|
||||
|
@ -24,6 +24,8 @@ export class CreateUser {
|
|||
@IsInt()
|
||||
@IsOptional()
|
||||
groupId?: number[] | number
|
||||
@IsUUID("5")
|
||||
uuid: string;
|
||||
|
||||
public async toUser(): Promise<User> {
|
||||
let newUser: User = new User();
|
||||
|
@ -39,12 +41,16 @@ export class CreateUser {
|
|||
throw new UserGroupNotFoundError();
|
||||
}
|
||||
|
||||
const new_uuid = uuid.v4()
|
||||
|
||||
newUser.email = this.email
|
||||
newUser.username = this.username
|
||||
newUser.firstname = this.firstname
|
||||
newUser.middlename = this.middlename
|
||||
newUser.lastname = this.lastname
|
||||
newUser.uuid = new_uuid
|
||||
// TODO: hash password here or in controller/ in User model via setter?
|
||||
this.password = await argon2.hash(this.password);
|
||||
newUser.password = this.password
|
||||
|
||||
console.log(newUser)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { Entity, Column, OneToMany, ManyToOne, PrimaryGeneratedColumn, Generated, Unique, JoinTable, ManyToMany } from "typeorm";
|
||||
import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsString, isUUID, } from "class-validator";
|
||||
import { UserGroup } from './UserGroup';
|
||||
import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsString, IsUUID } from "class-validator";
|
||||
import { Column, Entity, JoinTable, ManyToMany, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm";
|
||||
import { Permission } from './Permission';
|
||||
import { UserAction } from './UserAction';
|
||||
import { UserGroup } from './UserGroup';
|
||||
|
||||
/**
|
||||
* Defines a admin user.
|
||||
|
@ -20,9 +20,7 @@ export class User {
|
|||
/**
|
||||
* autogenerated uuid
|
||||
*/
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@Generated("uuid")
|
||||
@IsUUID("5")
|
||||
uuid: string;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue