diff --git a/srcs/requirements/nestjs/api_back/src/auth/42/authentication.module.ts b/srcs/requirements/nestjs/api_back/src/auth/42/authentication.module.ts index ed3df23a..d7982f81 100644 --- a/srcs/requirements/nestjs/api_back/src/auth/42/authentication.module.ts +++ b/srcs/requirements/nestjs/api_back/src/auth/42/authentication.module.ts @@ -12,18 +12,9 @@ import { SessionSerializer } from './utils/serializer'; @Module({ imports: [TypeOrmModule.forFeature([User, Friendship]), UsersModule, - // JwtModule.registerAsync({ - // useFactory: async (configService: ConfigService) => { - // return { - // signOptions: { expiresIn: '1h' }, - // secret: process.env.JWT_SECRET, - // }; - // } - // }) ], providers: [AuthenticationService, FortyTwoStrategy, UsersService, SessionSerializer, FriendshipService - // JwtStrategy -], + ], exports: [AuthenticationService], controllers: [AuthenticationController], }) diff --git a/srcs/requirements/nestjs/api_back/src/users/dto/create-users.dto.ts b/srcs/requirements/nestjs/api_back/src/users/dto/create-users.dto.ts index 3c0e6472..8b1a2529 100644 --- a/srcs/requirements/nestjs/api_back/src/users/dto/create-users.dto.ts +++ b/srcs/requirements/nestjs/api_back/src/users/dto/create-users.dto.ts @@ -1,9 +1,10 @@ -import { IsBoolean, IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator'; +import { IsBoolean, Matches, IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator'; import { isSet } from 'util/types'; export class CreateUsersDto { @IsString() @IsNotEmpty() + @Matches(/^[a-zA-Z0-9'-_]+$/) readonly username: string; readonly fortyTwoId: string; @IsEmail() diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index 9b2bc897..c25401cf 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -15,7 +15,7 @@ export class User { @Column({unique: true}) fortyTwoId: string; - @Column() + @Column({unique: true}) username: string; @Column() diff --git a/srcs/requirements/nestjs/api_back/src/users/users.controller.ts b/srcs/requirements/nestjs/api_back/src/users/users.controller.ts index 1a07db8e..0db08095 100644 --- a/srcs/requirements/nestjs/api_back/src/users/users.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/users/users.controller.ts @@ -58,7 +58,7 @@ export class UsersController { @Patch() async update(@Req() req, @Body(new ValidationPipe()) usersUpdateDto: UpdateUsersDto, @Res() response : Response) { console.log('user.controller updating user info') - const user = await this.usersService.update(req.user.id, usersUpdateDto); + const user = await this.usersService.update(req.user.id, usersUpdateDto, req.user.username); if (user.isEnabledTwoFactorAuth === false && user.isTwoFactorAuthenticated === true) this.usersService.setIsTwoFactorAuthenticatedWhenLogout(user.id); if (user.isEnabledTwoFactorAuth === true && user.isTwoFactorAuthenticated === false) diff --git a/srcs/requirements/nestjs/api_back/src/users/users.service.ts b/srcs/requirements/nestjs/api_back/src/users/users.service.ts index c698bed8..680075da 100644 --- a/srcs/requirements/nestjs/api_back/src/users/users.service.ts +++ b/srcs/requirements/nestjs/api_back/src/users/users.service.ts @@ -55,12 +55,9 @@ export class UsersService { } async isUsernameExists(usernameToSearch: string): Promise { - // console.log('searching for username: ' + usernameToSearch) - - const user = await this.userRepository.findOneBy({username : usernameToSearch}); - - // console.log({...user}) - + const user = await this.userRepository.createQueryBuilder('user') + .where('LOWER(user.username) = LOWER(:username)', {username : usernameToSearch}) + .getOne() if (!user) return false; return true; @@ -101,10 +98,9 @@ export class UsersService { return this.userRepository.save(user); } - async update(id: number, updateUserDto: UpdateUsersDto) { - // console.log(`Update user ${id} with ${updateUserDto.isEnabledTwoFactorAuth}`); - // console.log({...updateUserDto}) - if (await this.isUsernameExists(updateUserDto.username) === true) { + async update(id: number, updateUserDto: UpdateUsersDto, username : string) { + console.log("Maj user username : " + username + " updateuser dto " + updateUserDto.username ) + if (await this.isUsernameExists(updateUserDto.username) === true && updateUserDto.username !== username) { // console.log('updating username ' + updateUserDto.username + ' but it already is in use') throw new HttpException(`The username is already in use.`,HttpStatus.CONFLICT); } diff --git a/srcs/requirements/svelte/api_front/.env b/srcs/requirements/svelte/api_front/.env deleted file mode 100644 index cd15d3c1..00000000 --- a/srcs/requirements/svelte/api_front/.env +++ /dev/null @@ -1,2 +0,0 @@ -WEBSITE_HOST=localhost -WEBSITE_PORT=8080 diff --git a/srcs/requirements/svelte/api_front/public/fonts/PressStart2P.woff b/srcs/requirements/svelte/api_front/public/fonts/PressStart2P.woff new file mode 100644 index 00000000..281bd651 Binary files /dev/null and b/srcs/requirements/svelte/api_front/public/fonts/PressStart2P.woff differ diff --git a/srcs/requirements/svelte/api_front/public/fonts/PressStart2P.woff2 b/srcs/requirements/svelte/api_front/public/fonts/PressStart2P.woff2 new file mode 100644 index 00000000..44b75566 Binary files /dev/null and b/srcs/requirements/svelte/api_front/public/fonts/PressStart2P.woff2 differ diff --git a/srcs/requirements/svelte/api_front/public/global.css b/srcs/requirements/svelte/api_front/public/global.css index 151d0d36..4a77fd07 100644 --- a/srcs/requirements/svelte/api_front/public/global.css +++ b/srcs/requirements/svelte/api_front/public/global.css @@ -16,11 +16,11 @@ body { } @font-face { - font-family: "Bit5x3"; + font-family: "PressStart2P"; src: - url("./fonts/Bit5x3.woff2") format("woff2"), - local("Bit5x3"), - url("./fonts/Bit5x3.woff") format("woff"); + url("./fonts/PressStart2P.woff2") format("woff2"), + local("PressStart2P"), + url("./fonts/PressStart2P.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; @@ -42,8 +42,8 @@ a:visited { .background-pages { background-color: #333; - font-family: "Bit5x3"; - font-size: 2vw; + font-family: "PressStart2P"; + font-size: 1vw; color: white; } diff --git a/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte b/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte index c944f34e..1f409dbd 100644 --- a/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte @@ -1,30 +1,36 @@ @@ -71,8 +77,8 @@ border-color: #071013; border-width: 2px; color: white; - font-family: "Bit5x3"; - font-size: x-large; + font-family: "PressStart2P"; + font-size: 1vw; padding: 10px; } @@ -81,8 +87,8 @@ border-color: #071013; border-width: 2px; color: white; - font-family: "Bit5x3"; - font-size: x-large; + font-family: "PressStart2P"; + font-size: 1vw; padding: 10px; } diff --git a/srcs/requirements/svelte/api_front/src/pages/TwoFactorAuthentication.svelte b/srcs/requirements/svelte/api_front/src/pages/TwoFactorAuthentication.svelte index be30e387..428f589c 100644 --- a/srcs/requirements/svelte/api_front/src/pages/TwoFactorAuthentication.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/TwoFactorAuthentication.svelte @@ -1,44 +1,59 @@ @@ -88,7 +103,7 @@ .error { font-weight: bold; - font-size: 0.8em; + font-size: 1vw; color: red; } diff --git a/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte b/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte index 3cf3590f..ccb4242a 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte @@ -14,8 +14,8 @@ let user; let allUsers; - let playerOneAvatar; - let playerTwoAvatar; + let playerOneAvatar = ""; + let playerTwoAvatar = ""; //Game's stuff const options = new pong.InitOptions(); @@ -393,7 +393,16 @@ diff --git a/srcs/requirements/svelte/api_front/src/pieces/DisplayAUser.svelte b/srcs/requirements/svelte/api_front/src/pieces/DisplayAUser.svelte index 0a0c6eb0..d64599b2 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/DisplayAUser.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/DisplayAUser.svelte @@ -1,30 +1,23 @@
-{#if user !== undefined} - +{#if aUser} + {:else}

Sorry

Failed to load user {aUsername}
diff --git a/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte b/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte index 95fcc5ee..a987af2b 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte @@ -62,11 +62,11 @@
- {#if user !== undefined} + {#if user}
- default user icon + user avatar
{errors.avatar}
{user.username}
Rank: @@ -153,7 +153,7 @@ } .error{ - font-size: 0.8em; + font-size: 1vw; font-weight: bold; color: red; } diff --git a/srcs/requirements/svelte/api_front/src/pieces/Header.svelte b/srcs/requirements/svelte/api_front/src/pieces/Header.svelte index df34757b..7949e05f 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/Header.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/Header.svelte @@ -1,36 +1,47 @@
- Potato Pong Logo (push('/'))}> -
- - - - - -
- + Potato Pong Logo (push('/'))}> +
+ + + + + +
+