diff --git a/.dockerignore b/.dockerignore index 99519023a0fa413408742bebf3018a7586b89354..6d2bb29b3efb3a9149bdaf3f220b2a816e98a7d0 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 1e46942ef88dcc1a3cbf3ff68e09b10bfd11df04..34dc145d683af3483eeb484fa505b76bee400b0f 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 26fe0fc6c04da771e408ba9694fdd4ec5d9f6750..d0d6572d368aee9c2c374d34a632a1a8119106ec 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 8295d3db2448eda5ba9c40f2bb8ca1a4b68fff89..c868ed3121815b4119b682389e1b21a98e005705 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 e77a376137ca826018e31667764d35ad8d95c42f..213cdc802725c7145b467b54c542eed5a9ed5890 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 fa5e33d02f98da15ee890ce1f593f2f52f75a1a0..59043496864e65269981d9b27f7c4198a2b31c10 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 2213d7fc75b0c9f13fdda1be5041f4ad30117c85..73e5124e6b03cc1aa5ee32dc35d995a831e30b28 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 4b93cae20f1ba324d3305d784541295b4bcaeb7a..50378dd7882ae20fccaae04e7fc8e45640dddf46 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 3ed4faa339532b6871105443eae1b37504c786df..1b8d5a8bb7b1345bd006ef10928f046fef4d1d44 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 ef891e6d0dfd5e1cafa994b1d3b1bfef59ac622e..53ed76d6d73b6de3c5b274a2c02244f81c87b7ed 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 1c0120320b27299047f802035e26ba97da7ea2cf..eb4766ef5cc7793970e723159afdc075a1399c99 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); } }