diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index 7456b26f..0e226c7b 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -412,14 +412,27 @@ export class ChatController { const room_name = await this.chatService.getCurrentRoomName(req.user.username); const room = await this.chatService.getRoomByName(room_name); const users = room.users; + const admins = room.admins; let index = users.indexOf(req.user.username); if (index > -1) - { users.splice(index, 1); - } - res.status(HttpStatus.OK).json({ users: users }); + let ret_users = users.map(username => + { + let new_user = + { + name: username, + isadmin: false, + }; + if (admins.includes(username)) + new_user.isadmin = true; + + return new_user; + }); + console.log("ret_user:", ret_users); + + res.status(HttpStatus.OK).json({ users: ret_users }); printCaller("- out "); } diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte index 59e693db..594bc0f5 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte @@ -216,5 +216,16 @@ } + /* .admin + */ + .admin p { + flex-direction: row; + } + .admin :global(span) { + margin-left: auto; + color: gray; + } + + diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room_set.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room_set.svelte index 7e73f499..84580ece 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room_set.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room_set.svelte @@ -2,12 +2,13 @@ import { layout, current_room, settings_user } from './Store_chat'; import { get_room_users, leave_room, get_is_admin } from './Request_rooms'; + import { User } from './Types_chat'; import { to_print } from './Utils_chat'; import Button from './Element_button.svelte'; export let back = ""; - let users = get_room_users(); + let users: User[] = get_room_users(); let is_admin = false; get_is_admin().then(response => is_admin = response); @@ -81,8 +82,11 @@

list of users is loading...

{:then users} {#each users as user} - {/each} {/await} diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Types_chat.ts b/srcs/requirements/svelte/api_front/src/pieces/chat/Types_chat.ts index 065e8d60..02a455d8 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Types_chat.ts +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Types_chat.ts @@ -14,6 +14,12 @@ export interface Message type: string; } +export interface User +{ + name: string; + isadmin: boolean; +} + export interface FetchResponse { status: number; @@ -21,7 +27,7 @@ export interface FetchResponse code?: string; message?: string; messages?: Message[]; - users?: string[]; + users?: User[]; room?: Room; rooms?: Room[]; is_admin?: boolean;