From 58093d48a479ab56399ac1ea540eebe919af2134 Mon Sep 17 00:00:00 2001 From: Emi Boucly Date: Wed, 29 Jan 2025 22:58:59 +0100 Subject: [PATCH] feat(loginSet): limitation des salons en fonction des loginSet --- chat/src/main/java/rtgre/modeles/Room.java | 4 +++ chat/src/main/java/rtgre/modeles/RoomMap.java | 36 +++++++++++++++++++ .../main/java/rtgre/server/ChatServer.java | 11 +++--- 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/chat/src/main/java/rtgre/modeles/Room.java b/chat/src/main/java/rtgre/modeles/Room.java index 0a7de23..728c8cd 100644 --- a/chat/src/main/java/rtgre/modeles/Room.java +++ b/chat/src/main/java/rtgre/modeles/Room.java @@ -33,6 +33,10 @@ public class Room { return this.roomName; } + public void setLoginSet (HashSet loginSet) { + this.loginSet = loginSet; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/chat/src/main/java/rtgre/modeles/RoomMap.java b/chat/src/main/java/rtgre/modeles/RoomMap.java index eb37b3e..291d409 100644 --- a/chat/src/main/java/rtgre/modeles/RoomMap.java +++ b/chat/src/main/java/rtgre/modeles/RoomMap.java @@ -1,5 +1,6 @@ package rtgre.modeles; +import java.util.HashSet; import java.util.TreeMap; public class RoomMap extends TreeMap { @@ -13,4 +14,39 @@ public class RoomMap extends TreeMap { this.add(new Room("#ducks")); this.add(new Room("#mice")); } + + public void setLoginSets() { + + HashSet juniors = new HashSet<>(); + juniors.add("riri"); + juniors.add("fifi"); + juniors.add("loulou"); + this.get("#juniors").setLoginSet(juniors); + + HashSet ducks = new HashSet<>(); + ducks.add("riri"); + ducks.add("fifi"); + ducks.add("loulou"); + ducks.add("donald"); + ducks.add("daisy"); + ducks.add("picsou"); + this.get("#ducks").setLoginSet(ducks); + + HashSet mice = new HashSet<>(); + mice.add("mickey"); + mice.add("minnie"); + this.get("#mice").setLoginSet(mice); + + HashSet all = new HashSet<>(); + all.add("riri"); + all.add("fifi"); + all.add("loulou"); + all.add("donald"); + all.add("daisy"); + all.add("picsou"); + all.add("mickey"); + all.add("minnie"); + all.add("dingo"); + this.get("#all").setLoginSet(all); + } } diff --git a/chat/src/main/java/rtgre/server/ChatServer.java b/chat/src/main/java/rtgre/server/ChatServer.java index b2c13c4..282eebe 100644 --- a/chat/src/main/java/rtgre/server/ChatServer.java +++ b/chat/src/main/java/rtgre/server/ChatServer.java @@ -58,6 +58,7 @@ public class ChatServer { roomMap = new RoomMap(); contactMap.loadDefaultContacts(); roomMap.loadDefaultRooms(); + roomMap.setLoginSets(); } public void close() throws IOException { @@ -305,10 +306,12 @@ public class ChatServer { private void doListRoom(JSONObject content) { if (contactMap.getContact(user.getLogin()).isConnected()) { for (Room room: roomMap.values()) { - try { - send(new Event("ROOM", room.toJsonObject()).toJson()); - } catch (IOException e) { - throw new IllegalStateException(); + if (room.getLoginSet().contains(user.getLogin())) { + try { + send(new Event("ROOM", room.toJsonObject()).toJson()); + } catch (IOException e) { + throw new IllegalStateException(); + } } } }