From 11a99ccf815643e2ee1fbedb19016b22dd6122e3 Mon Sep 17 00:00:00 2001
From: Felix Sidokhine <felix.sidokhine@randstad.ca>
Date: Sun, 10 May 2020 20:14:56 +0300
Subject: [PATCH] added the branching logic inside the login servlet, no
 relation to API

---
 .../jams/server/servlets/web/LoginServlet.java | 13 +++++++++++++
 .../web/install/CreateAdminAccountServlet.java | 18 ------------------
 2 files changed, 13 insertions(+), 18 deletions(-)
 delete mode 100644 jams-server/src/main/java/net/jami/jams/server/servlets/web/install/CreateAdminAccountServlet.java

diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/web/LoginServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/web/LoginServlet.java
index a5c2b115..25975588 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/web/LoginServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/web/LoginServlet.java
@@ -5,8 +5,10 @@ import jakarta.servlet.annotation.WebServlet;
 import jakarta.servlet.http.HttpServlet;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
+import net.jami.jams.common.authentication.AuthenticationSourceType;
 import net.jami.jams.common.dao.StatementElement;
 import net.jami.jams.common.dao.StatementList;
+import net.jami.jams.common.objects.user.AccessLevel;
 import net.jami.jams.common.objects.user.User;
 import net.jami.jams.server.Server;
 import net.jami.jams.server.servlets.filters.WebAppFilter;
@@ -25,6 +27,17 @@ public class LoginServlet extends HttpServlet {
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //Similar technique as the one for API calls, simply handle this here because this is a different logic.
+        if(!Server.isInstalled.get()){
+            //Basically create the admin user here.
+            User user = new User();
+            user.setUserType(AuthenticationSourceType.LOCAL);
+            user.setAccessLevel(AccessLevel.ADMIN);
+            user.setPassword(req.getParameter("password"));
+            user.setUsername(req.getParameter("username"));
+            Server.dataStore.createUser(user);
+            resp.sendRedirect("/web/install/auth");
+            return;
+        }
         if(Server.userAuthenticationModule.authenticateUser
                 (req.getParameter("username"),req.getParameter("password"))
         ){
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/web/install/CreateAdminAccountServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/web/install/CreateAdminAccountServlet.java
deleted file mode 100644
index c3dbeb6b..00000000
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/web/install/CreateAdminAccountServlet.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.jami.jams.server.servlets.web.install;
-
-import jakarta.servlet.ServletException;
-import jakarta.servlet.annotation.WebServlet;
-import jakarta.servlet.http.HttpServlet;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
-import java.io.IOException;
-
-@WebServlet("/web/install/admin")
-public class CreateAdminAccountServlet extends HttpServlet {
-
-    @Override
-    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-        super.doPost(req, resp);
-    }
-}
-- 
GitLab