From 11ca2faee1a8d086cee35779a1f2c0793eddf96d Mon Sep 17 00:00:00 2001
From: William Enright <william.enright@savoirfairelinux.com>
Date: Thu, 25 Jun 2020 14:52:03 -0400
Subject: [PATCH] Restored user revocation

Change-Id: I1b2272b6c2312c3ec109304e8c706320940e7f77
---
 .../server/servlets/api/auth/user/UserServlet.java     | 10 +++++++++-
 jams-server/src/main/resources/webapp/js/api.js        |  3 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java
index 6c725590..453465c8 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/user/UserServlet.java
@@ -35,8 +35,10 @@ 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.common.utils.PasswordGenerator;
+import org.bouncycastle.openssl.PEMWriter;
 
 import java.io.IOException;
+import java.io.StringWriter;
 
 import static net.jami.jams.server.Server.certificateAuthority;
 import static net.jami.jams.server.Server.dataStore;
@@ -45,7 +47,7 @@ import static net.jami.jams.server.Server.nameServer;
 @WebServlet("/api/auth/user")
 public class UserServlet extends HttpServlet {
 
-    //User can "read" his own profile.
+    //User can "read" himself.
     /**
      * @apiVersion 1.0.0
      * @api {get} /api/auth/user Get JAMS user info
@@ -94,6 +96,12 @@ public class UserServlet extends HttpServlet {
 
         resp.setHeader("needspasswordreset", (user.getNeedsPasswordReset()).toString());
         resp.setHeader("password", password);
+
+        if (certificateAuthority.getLatestCRL().get()
+                .getRevokedCertificate(user.getCertificate().getSerialNumber()) == null)
+            resp.setHeader("revoked", "false");
+        else
+            resp.setHeader("revoked", "true");
     }
 
     //The user can update 3 fields: password,privatekey,publickey
diff --git a/jams-server/src/main/resources/webapp/js/api.js b/jams-server/src/main/resources/webapp/js/api.js
index 4ce765f0..e74f6df4 100644
--- a/jams-server/src/main/resources/webapp/js/api.js
+++ b/jams-server/src/main/resources/webapp/js/api.js
@@ -46,10 +46,13 @@ var api_path_get_directories = '/api/auth/directories';
 var api_path_get_needs_update = '/api/admin/update';
 var api_path_get_start_update = '/api/admin/update';
 var api_path_post_create_user = '/api/admin/user';
+var api_path_get_user = '/api/auth/user';
 var api_path_post_update_user = '/api/auth/user';
 var api_path_get_exists_user = '/api/admin/user';
 var api_path_get_user_directory_search ='/api/auth/directory/search';
 var api_path_post_create_user_profile = '/api/admin/directory/entry';
+var api_path_put_update_user_profile = '/api/admin/directory/entry';
+var api_path_get_user_search = '/api/admin/users';
 
 function ajaxApiCall(api_path, request_type, data, credentials, callBackFunction, async) {
     // build AJAX call
-- 
GitLab