From 92a9e3233af23bdd09af212d215620839f924556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Banno-Cloutier?= <leo.banno-cloutier@savoirfairelinux.com> Date: Fri, 25 Aug 2023 16:55:20 -0400 Subject: [PATCH] jams-server: remove 404 handling when returning lists We instead return 200 with an empty list Change-Id: I43f10783548ec4581e6fcdddc187adb8247d2b5b --- .dockerignore | 2 ++ README.md | 8 ++++++++ extras/scripts/pre-commit | 5 +++-- extras/scripts/setup_jams.sh | 2 +- .../jami/jams/common/objects/contacts/Contact.java | 1 - .../jami/jams/common/objects/devices/Device.java | 1 - jams-react-client/src/views/Groups/Groups.tsx | 3 --- .../api/admin/directory/DirectoryEntryServlet.java | 1 - .../servlets/api/admin/group/GroupsServlet.java | 10 ++-------- .../servlets/api/admin/group/UserGroupServlet.java | 13 +++---------- .../servlets/api/admin/users/UserGroupsServlet.java | 10 ++-------- 11 files changed, 21 insertions(+), 35 deletions(-) diff --git a/.dockerignore b/.dockerignore index 99519023..6d2bb29b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -19,3 +19,5 @@ derby.log extras jams jams-server/src/main/resources/webapp + +package-lock.json diff --git a/README.md b/README.md index 1e46942e..34dc145d 100644 --- a/README.md +++ b/README.md @@ -146,3 +146,11 @@ Don't forget to launch jams locally at least once before proceeding. The files in the `filters` folder are prefixed "A", "B", "C" and "D" so that the order of execution of the filters are right (jakarta registers filters in alphabetical order). + +## Notes about jams-server +- /api/admin is the route for all admins actions, it gives read and write permissions to all users' data +- /api/auth is the route for **authenticated** users, it lets you read all +users' data and edit your own profile. This route has nothing to do with authentication +- /api/login is the route to authenticate users +- /api/install is the routes used to setup jams initially, once the initial setup +is done its endpoints tells the client that the server is already installed diff --git a/extras/scripts/pre-commit b/extras/scripts/pre-commit index 26fe0fc6..d0d6572d 100755 --- a/extras/scripts/pre-commit +++ b/extras/scripts/pre-commit @@ -1,6 +1,7 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh cd jams-react-client npm run format +cd .. -google-java-format -i -a **/*.java +google-java-format -i -a --skip-reflowing-long-strings --skip-javadoc-formatting **/*.java diff --git a/extras/scripts/setup_jams.sh b/extras/scripts/setup_jams.sh index 8295d3db..c868ed31 100755 --- a/extras/scripts/setup_jams.sh +++ b/extras/scripts/setup_jams.sh @@ -69,7 +69,7 @@ install_auth() { install_settings() { post '/api/install/settings' \ '{ - "serverDomain":"http://localhost:3000", + "serverDomain":"http://localhost:8080", "crlLifetime":300000, "deviceLifetime":31556952000, "userLifetime":31556952000, diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/contacts/Contact.java b/jams-common/src/main/java/net/jami/jams/common/objects/contacts/Contact.java index e77a3761..213cdc80 100644 --- a/jams-common/src/main/java/net/jami/jams/common/objects/contacts/Contact.java +++ b/jams-common/src/main/java/net/jami/jams/common/objects/contacts/Contact.java @@ -23,7 +23,6 @@ package net.jami.jams.common.objects.contacts; - import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java b/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java index fa5e33d0..59043496 100644 --- a/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java +++ b/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java @@ -22,7 +22,6 @@ */ package net.jami.jams.common.objects.devices; - import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/jams-react-client/src/views/Groups/Groups.tsx b/jams-react-client/src/views/Groups/Groups.tsx index 2213d7fc..73e5124e 100644 --- a/jams-react-client/src/views/Groups/Groups.tsx +++ b/jams-react-client/src/views/Groups/Groups.tsx @@ -158,9 +158,6 @@ export default function Groups() { auth.authenticated = false; history.push("/"); } - if (error.response.status === 404) { - group["groupMembersLength"] = 0; - } }); }); setGroups(allGroups); diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java index 4b93cae2..50378dd7 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java @@ -27,7 +27,6 @@ import static net.jami.jams.server.Server.dataStore; import static net.jami.jams.server.Server.userAuthenticationModule; import com.google.gson.Gson; -import com.google.gson.JsonObject; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/GroupsServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/GroupsServlet.java index 3ed4faa3..1b8d5a8b 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/GroupsServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/GroupsServlet.java @@ -31,14 +31,8 @@ public class GroupsServlet extends HttpServlet { @JsonContent protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - List<Group> groups = dataStore.getGroupDao().getAll(); - - if (!groups.isEmpty()) { - resp.getOutputStream().write(gson.toJson(groups).getBytes()); - resp.setStatus(200); - } else { - resp.setStatus(404); - } + resp.getOutputStream().write(gson.toJson(groups).getBytes()); + resp.setStatus(200); } } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/UserGroupServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/UserGroupServlet.java index ef891e6d..53ed76d6 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/UserGroupServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/group/UserGroupServlet.java @@ -44,23 +44,16 @@ public class UserGroupServlet extends HttpServlet { @ScopedServletMethod(securityGroups = {AccessLevel.ADMIN}) @JsonContent protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String groupId = req.getPathInfo().replace("/", ""); - List<UserGroupMapping> result = dataStore.getUserGroupMappingsDao().getByGroupId(groupId); - - if (result.isEmpty()) resp.sendError(404, "No users found for this group!"); - else { - resp.getOutputStream().write(gson.toJson(result).getBytes()); - resp.setStatus(200); - } + resp.getOutputStream().write(gson.toJson(result).getBytes()); + resp.setStatus(200); } @Override @ScopedServletMethod(securityGroups = {AccessLevel.ADMIN}) @JsonContent protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String groupId = req.getPathInfo().replace("/", ""); JsonObject obj = gson.fromJson(req.getReader(), JsonObject.class); @@ -70,7 +63,7 @@ public class UserGroupServlet extends HttpServlet { dataStore.getUserGroupMappingsDao().getByGroupIdAndUsername(groupId, username); if (existingMapping.isPresent()) { - resp.sendError(409, "The user already part of the group!"); + resp.sendError(HttpServletResponse.SC_CONFLICT, "The user already part of the group!"); return; } diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserGroupsServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserGroupsServlet.java index 1c012032..eb4766ef 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserGroupsServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UserGroupsServlet.java @@ -42,15 +42,9 @@ public class UserGroupsServlet extends HttpServlet { @ScopedServletMethod(securityGroups = {AccessLevel.ADMIN}) @JsonContent protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String username = req.getPathInfo().replace("/", ""); - List<UserGroupMapping> result = dataStore.getUserGroupMappingsDao().getByUsername(username); - - if (result.isEmpty()) resp.sendError(404, "No groups found for this user!"); - else { - resp.getOutputStream().write(gson.toJson(result).getBytes()); - resp.setStatus(200); - } + resp.getOutputStream().write(gson.toJson(result).getBytes()); + resp.setStatus(200); } } -- GitLab