Compare commits

..

No commits in common. "f1629440feae3a49ab17ec7d29b709ff392d6988" and "8292ec3a1ee304552ba2d4aefff4a90e9a3bc5c4" have entirely different histories.

4 changed files with 13 additions and 24 deletions

View File

@ -7,11 +7,7 @@
}, },
"prettier.enable": false, "prettier.enable": false,
"[typescript]": { "[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features", "editor.defaultFormatter": "vscode.typescript-language-features"
"editor.codeActionsOnSave": {
"source.organizeImports": true,
"source.fixAll": true
}
}, },
"javascript.preferences.quoteStyle": "single", "javascript.preferences.quoteStyle": "single",
"javascript.preferences.importModuleSpecifierEnding": "minimal", "javascript.preferences.importModuleSpecifierEnding": "minimal",

View File

@ -22,7 +22,6 @@
], ],
"license": "CC-BY-NC-SA-4.0", "license": "CC-BY-NC-SA-4.0",
"dependencies": { "dependencies": {
"argon2": "^0.27.0",
"body-parser": "^1.19.0", "body-parser": "^1.19.0",
"class-transformer": "^0.3.1", "class-transformer": "^0.3.1",
"class-validator": "^0.12.2", "class-validator": "^0.12.2",
@ -40,8 +39,7 @@
"routing-controllers-openapi": "^2.1.0", "routing-controllers-openapi": "^2.1.0",
"swagger-ui-express": "^4.1.5", "swagger-ui-express": "^4.1.5",
"typeorm": "^0.2.29", "typeorm": "^0.2.29",
"typeorm-routing-controllers-extensions": "^0.2.0", "typeorm-routing-controllers-extensions": "^0.2.0"
"uuid": "^8.3.1"
}, },
"devDependencies": { "devDependencies": {
"@types/cors": "^2.8.8", "@types/cors": "^2.8.8",
@ -51,7 +49,6 @@
"@types/multer": "^1.4.4", "@types/multer": "^1.4.4",
"@types/node": "^14.14.9", "@types/node": "^14.14.9",
"@types/swagger-ui-express": "^4.1.2", "@types/swagger-ui-express": "^4.1.2",
"@types/uuid": "^8.3.0",
"dotenv-safe": "^8.2.0", "dotenv-safe": "^8.2.0",
"nodemon": "^2.0.6", "nodemon": "^2.0.6",
"sqlite3": "^5.0.0", "sqlite3": "^5.0.0",

View File

@ -1,8 +1,8 @@
import * as argon2 from "argon2"; import { IsInt, IsOptional, IsPhoneNumber, IsString } from 'class-validator';
import { IsInt, IsOptional, IsPhoneNumber, IsString, IsUUID } from 'class-validator';
import * as uuid from 'uuid';
import { UserGroupNotFoundError, UsernameOrEmailNeededError } from '../errors/CreateUserErrors';
import { User } from '../models/User'; import { User } from '../models/User';
import { getConnectionManager } from 'typeorm';
import { UserGroupNotFoundError, UsernameOrEmailNeededError } from '../errors/CreateUserErrors';
import { UserGroup } from './UserGroup';
export class CreateUser { export class CreateUser {
@IsString() @IsString()
@ -24,8 +24,6 @@ export class CreateUser {
@IsInt() @IsInt()
@IsOptional() @IsOptional()
groupId?: number[] | number groupId?: number[] | number
@IsUUID("5")
uuid: string;
public async toUser(): Promise<User> { public async toUser(): Promise<User> {
let newUser: User = new User(); let newUser: User = new User();
@ -41,16 +39,12 @@ export class CreateUser {
throw new UserGroupNotFoundError(); throw new UserGroupNotFoundError();
} }
const new_uuid = uuid.v4()
newUser.email = this.email newUser.email = this.email
newUser.username = this.username newUser.username = this.username
newUser.firstname = this.firstname newUser.firstname = this.firstname
newUser.middlename = this.middlename newUser.middlename = this.middlename
newUser.lastname = this.lastname newUser.lastname = this.lastname
newUser.uuid = new_uuid
// TODO: hash password here or in controller/ in User model via setter? // TODO: hash password here or in controller/ in User model via setter?
this.password = await argon2.hash(this.password);
newUser.password = this.password newUser.password = this.password
console.log(newUser) console.log(newUser)

View File

@ -1,8 +1,8 @@
import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsString, IsUUID } from "class-validator"; import { Entity, Column, OneToMany, ManyToOne, PrimaryGeneratedColumn, Generated, Unique, JoinTable, ManyToMany } from "typeorm";
import { Column, Entity, JoinTable, ManyToMany, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm"; import { IsBoolean, IsEmail, IsInt, IsNotEmpty, IsOptional, IsPhoneNumber, IsString, isUUID, } from "class-validator";
import { UserGroup } from './UserGroup';
import { Permission } from './Permission'; import { Permission } from './Permission';
import { UserAction } from './UserAction'; import { UserAction } from './UserAction';
import { UserGroup } from './UserGroup';
/** /**
* Defines a admin user. * Defines a admin user.
@ -20,7 +20,9 @@ export class User {
/** /**
* autogenerated uuid * autogenerated uuid
*/ */
@IsUUID("5") @IsOptional()
@IsInt()
@Generated("uuid")
uuid: string; uuid: string;
/** /**