wip change password

+ little clean in files, delete some
This commit is contained in:
simplonco
2023-01-15 01:05:57 +01:00
parent f3d0af4738
commit 1a7091679b
11 changed files with 74 additions and 93 deletions

View File

@@ -203,13 +203,7 @@ export class ChatController {
printCaller("- in "); printCaller("- in ");
let fields = ["protection", "allowed_users"]; let fields = ["protection", "allowed_users"];
//const room_db = await this.chatService.getRoomByName(room.name, fields); const room_db = await this.chatService.getRoomByName(room.name, fields);
const room_db = await this.chatService.getRoomByName(room.name);
console.log("room.name:", room.name);
console.log("room_db:", room_db);
const all_rooms = await this.chatService.getAllRooms();
console.log("all_rooms:", all_rooms);
if (room_db.protection === true) if (room_db.protection === true)
{ {
@@ -231,8 +225,8 @@ export class ChatController {
@UseGuards(AuthenticateGuard) @UseGuards(AuthenticateGuard)
@UseGuards(TwoFactorGuard) @UseGuards(TwoFactorGuard)
@Post('password') @Post('passwordauth')
async setPassword(@Body() room: roomDto, @Req() req, @Res() res): Promise<void> async passwordAuthentication(@Body() room: roomDto, @Req() req, @Res() res): Promise<void>
{ {
printCaller("- in "); printCaller("- in ");
@@ -254,6 +248,21 @@ export class ChatController {
printCaller("- out "); printCaller("- out ");
} }
@UseGuards(AuthenticateGuard)
@UseGuards(TwoFactorGuard)
@Post('changepassword')
async changePassword(@Body('room') room: roomDto, @Body('old_password') old_password: string, @Req() req, @Res() res): Promise<void>
{
printCaller("- in ");
let socket: socketDto = this.chatGateway.sockets.get(req.user.username);
await this.chatService.addPassword(req.user.username, room, socket, old_password);
const ret_room = this.format_room(room);
res.status(HttpStatus.OK).json({ room: ret_room });
printCaller("- out ");
}
@UseGuards(AuthenticateGuard) @UseGuards(AuthenticateGuard)
@UseGuards(TwoFactorGuard) @UseGuards(TwoFactorGuard)
@Post('invite') @Post('invite')

View File

@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import Layouts from './Chat_layouts.svelte'; import Layouts from './Chat_layouts.svelte';
import { init_socket } from './Socket_init'; import { init_socket } from './Socket_chat';
export let color = "transparent"; export let color = "transparent";

View File

@@ -1,7 +1,5 @@
<script lang="ts"> <script lang="ts">
import Debug from './tmp_debug.svelte';
import { layout } from './Store_chat'; import { layout } from './Store_chat';
import ChatBox from './Chat_box_css.svelte'; import ChatBox from './Chat_box_css.svelte';
@@ -11,7 +9,7 @@
import NewLayout from './Layout_new.svelte'; import NewLayout from './Layout_new.svelte';
import SettingsLayout from './Layout_settings.svelte'; import SettingsLayout from './Layout_settings.svelte';
import RoomsetLayout from './Layout_room_set.svelte'; import RoomsetLayout from './Layout_room_set.svelte';
import ProtectedLayout from './Layout_protected.svelte'; import PasswordLayout from './Layout_password.svelte';
import CreateLayout from './Layout_create.svelte'; import CreateLayout from './Layout_create.svelte';
import MuteLayout from './Layout_mute.svelte'; import MuteLayout from './Layout_mute.svelte';
import UserLayout from './Layout_user.svelte'; import UserLayout from './Layout_user.svelte';
@@ -68,8 +66,14 @@
{:else if $layout === "room_set"} {:else if $layout === "room_set"}
<RoomsetLayout back={layouts[1]} /> <RoomsetLayout back={layouts[1]} />
{:else if $layout === "protected"} {:else if $layout === "password"}
<ProtectedLayout back={layouts[1]} /> <PasswordLayout back={layouts[1]} mode="add" />
{:else if $layout === "change_password"}
<PasswordLayout back={layouts[1]} mode="change" />
{:else if $layout === "remove_password"}
<PasswordLayout back={layouts[1]} mode="remove" />
{:else if $layout === "create"} {:else if $layout === "create"}
<CreateLayout back={layouts[1]} /> <CreateLayout back={layouts[1]} />
@@ -87,8 +91,5 @@
</ChatBox> </ChatBox>
<!-- TMP DEBUG -->
<Debug bind:layouts />
<style></style> <style></style>

View File

@@ -16,7 +16,7 @@
if (room.protection && !room.allowed) if (room.protection && !room.allowed)
{ {
await current_room.set(room); await current_room.set(room);
layout.set("protected"); layout.set("password");
} }
else else
{ {

View File

@@ -17,7 +17,7 @@
if (updated_room.protection) if (updated_room.protection)
{ {
current_room.set(updated_room); current_room.set(updated_room);
layout.set("protected"); layout.set("password");
} }
else else
await change_room(updated_room); await change_room(updated_room);

View File

@@ -7,6 +7,12 @@
import Warning from './Element_warning.svelte'; import Warning from './Element_warning.svelte';
export let back = ""; export let back = "";
export let mode = "add";
let password_state = "";
if (mode === 'change')
password_state = "new";
if (mode === 'remove')
password_state = "current";
let room_password: string; let room_password: string;
let response: FetchResponse; let response: FetchResponse;
@@ -49,7 +55,7 @@
<!-- room_name --> <!-- room_name -->
<Button my_class="room_name deactivate"> <Button my_class="room_name deactivate">
&lt;room_name&gt; {$current_room.name}
</Button> </Button>
<!-- close --> <!-- close -->
@@ -57,14 +63,18 @@
close close
</Button> </Button>
<!-- panel_protected --> <!-- panel_password -->
<div class="panel panel_protected __border_top"> <div class="panel panel_password __border_top">
<p class="title __center">this room is protected</p> <p class="title __center">this room is protected</p>
<form on:submit|preventDefault={handleSubmit}> <form on:submit|preventDefault={handleSubmit}>
{#if show_error} {#if show_error}
<Warning content={response.message}/> <Warning content={response.message}/>
{/if} {/if}
<label for="chat_pswd"><p>enter password :</p></label> {#if mode === 'change'}
<label for="chat_pswd"><p>enter old password :</p></label>
<input id="chat_pswd" bind:value={room_password} type="password" placeholder="minimum 8 characters" minlength="8" name="password" required>
{/if}
<label for="chat_pswd"><p>enter {password_state} password :</p></label>
<input id="chat_pswd" bind:value={room_password} type="password" placeholder="minimum 8 characters" minlength="8" name="password" required> <input id="chat_pswd" bind:value={room_password} type="password" placeholder="minimum 8 characters" minlength="8" name="password" required>
<input type="submit" value="&#x2BA1"> <input type="submit" value="&#x2BA1">
</form> </form>
@@ -74,17 +84,17 @@
<style> <style>
/* grid layout "protected" /* grid layout "password"
*/ */
.grid_box :global(.back ) {grid-area: back;} .grid_box :global(.back ) {grid-area: back;}
.grid_box :global(.room_name ) {grid-area: room_name;} .grid_box :global(.room_name ) {grid-area: room_name;}
.grid_box :global(.close ) {grid-area: close;} .grid_box :global(.close ) {grid-area: close;}
.grid_box :global(.panel_protected) {grid-area: panel_protected;} .grid_box :global(.panel_password) {grid-area: panel_password;}
.grid_box { .grid_box {
grid: grid:
' back room_name close ' auto ' back room_name close ' auto
' panel_protected panel_protected panel_protected ' 1fr ' panel_password panel_password panel_password ' 1fr
/ auto 1fr auto ; / auto 1fr auto ;
} }

View File

@@ -10,21 +10,6 @@
console.log("current_room:", $current_room); console.log("current_room:", $current_room);
function change_password()
{
console.log("in change_password");
}
function remove_password()
{
console.log("in remove_password");
}
function add_password()
{
console.log("in add_password");
}
function user_profile() function user_profile()
{ {
console.log("in user_profile"); console.log("in user_profile");
@@ -68,14 +53,14 @@
{/if} {/if}
{#if $current_room.protection } {#if $current_room.protection }
<p class="__center">this room is password protected</p> <p class="__center">this room is password protected</p>
<Button on:click={change_password}> <Button new_layout="change_password">
change password change password
</Button> </Button>
<Button on:click={remove_password}> <Button new_layout="remove_password">
remove password remove password
</Button> </Button>
{:else} {:else}
<Button on:click={add_password}> <Button new_layout="password">
add password add password
</Button> </Button>
{/if} {/if}

View File

@@ -66,7 +66,7 @@ export async function send_password(room: Room)
console.log("in send_password"); console.log("in send_password");
console.log("room sent to set password:", room); console.log("room sent to set password:", room);
let response: FetchResponse = await fetch_chat_request('password', FetchMethod.POST, room); let response: FetchResponse = await fetch_chat_request('passwordauth', FetchMethod.POST, room);
console.log("room returned from set password:", response.room); console.log("room returned from set password:", response.room);
return response; return response;

View File

@@ -1,6 +1,6 @@
import io from 'socket.io-client'; import io from 'socket.io-client';
import { set_socket, set_user } from './Store_chat'; import { set_socket, set_user } from './Store_chat';
import { socket_events } from './Socket_events'; import { user, msgs } from './Store_chat';
const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`; const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;
@@ -21,6 +21,23 @@ export async function init_socket()
}); });
set_socket(socket); set_socket(socket);
socket_states(socket);
socket_events(socket);
}
function socket_events(socket)
{
socket.on('message', function(from, message)
{
console.log("received msg:", message, from);
if (from === user.username)
from = "me";
msgs.update(msgs => [...msgs, { name: from, message: message }]);
});
}
function socket_states(socket)
{
socket.on('connect', function(){ console.log("socket.io connected"); }); socket.on('connect', function(){ console.log("socket.io connected"); });
socket.on('disconnect', function(){ console.log("socket.io disconnected"); }); socket.on('disconnect', function(){ console.log("socket.io disconnected"); });
socket.on('connect_error', function(){ console.log("socket.io connect_error"); }); socket.on('connect_error', function(){ console.log("socket.io connect_error"); });
@@ -33,7 +50,5 @@ export async function init_socket()
socket.on('reconnect_failed', function(){ console.log("socket.io reconnect_failed"); }); socket.on('reconnect_failed', function(){ console.log("socket.io reconnect_failed"); });
socket.on('ping', function(){ console.log("socket.io ping"); }); socket.on('ping', function(){ console.log("socket.io ping"); });
socket.on('pong', function(){ console.log("socket.io pong"); }); socket.on('pong', function(){ console.log("socket.io pong"); });
socket_events(socket);
} }

View File

@@ -1,12 +0,0 @@
import { user, msgs } from './Store_chat';
export function socket_events(socket)
{
socket.on('message', function(from, message)
{
console.log("received msg:", message, from);
if (from === user.username)
from = "me";
msgs.update(msgs => [...msgs, { name: from, message: message }]);
});
}

View File

@@ -1,27 +0,0 @@
<script>
export let layout = "";
export let layouts = [];
</script>
<div style="display: flex; flex-direction: column; font-size: 12px; position: fixed; top: 20px; left: 20px; background-color: white;">
<p>temp, for testing :</p>
<button on:click={function(){layout = "close" }}>close</button>
<button on:click={function(){layout = "home" }}>home</button>
<button on:click={function(){layout = "room" }}>room</button>
<button on:click={function(){layout = "new" }}>new</button>
<button on:click={function(){layout = "settings" }}>settings</button>
<button on:click={function(){layout = "room_set" }}>room_set</button>
<button on:click={function(){layout = "protected"}}>protected</button>
<button on:click={function(){layout = "create" }}>create</button>
<button on:click={function(){layout = "mute" }}>mute</button>
<button on:click={function(){
layouts = ["settings", "settings"];
layout = "user";
}}>user from settings</button>
<button on:click={function(){
layouts = ["room_set", "room_set"];
layout = "user";
}}>user from room_set</button>
</div>