From 326877004d3a0b13eb233e87f831c9ff9605239a Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Wed, 22 Apr 2020 16:31:45 +0200
Subject: [PATCH] Added user field in invited_registration_request table

---
 .../inaf/ia2/gms/manager/InvitedRegistrationManager.java | 1 +
 .../inaf/ia2/gms/persistence/InvitedRegistrationDAO.java | 5 +++--
 .../ia2/gms/persistence/model/InvitedRegistration.java   | 9 +++++++++
 gms/src/main/resources/sql/init.sql                      | 1 +
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/gms/src/main/java/it/inaf/ia2/gms/manager/InvitedRegistrationManager.java b/gms/src/main/java/it/inaf/ia2/gms/manager/InvitedRegistrationManager.java
index a8547e3..b16bec4 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/manager/InvitedRegistrationManager.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/manager/InvitedRegistrationManager.java
@@ -109,6 +109,7 @@ public class InvitedRegistrationManager extends UserAwareComponent {
                 permissionsService.addPermission(groupEntity, userId, entry.getValue());
             }
 
+            invitedRegistration.setUserId(getCurrentUserId());
             invitedRegistrationDAO.setRegistrationDone(invitedRegistration);
 
             httpSession.removeAttribute(INVITED_REGISTRATION);
diff --git a/gms/src/main/java/it/inaf/ia2/gms/persistence/InvitedRegistrationDAO.java b/gms/src/main/java/it/inaf/ia2/gms/persistence/InvitedRegistrationDAO.java
index 3824015..f05086f 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/persistence/InvitedRegistrationDAO.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/persistence/InvitedRegistrationDAO.java
@@ -94,11 +94,12 @@ public class InvitedRegistrationDAO {
 
     public void setRegistrationDone(InvitedRegistration invitedRegistration) {
 
-        String sql = "UPDATE invited_registration_request SET done = true WHERE id = ?";
+        String sql = "UPDATE invited_registration_request SET \"user\" = ?, done = true WHERE id = ?";
 
         jdbcTemplate.update(conn -> {
             PreparedStatement ps = conn.prepareStatement(sql);
-            ps.setString(1, invitedRegistration.getId());
+            ps.setString(1, invitedRegistration.getUserId());
+            ps.setString(2, invitedRegistration.getId());
             return ps;
         });
     }
diff --git a/gms/src/main/java/it/inaf/ia2/gms/persistence/model/InvitedRegistration.java b/gms/src/main/java/it/inaf/ia2/gms/persistence/model/InvitedRegistration.java
index f0e4769..e7a922b 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/persistence/model/InvitedRegistration.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/persistence/model/InvitedRegistration.java
@@ -9,6 +9,7 @@ public class InvitedRegistration {
     private String tokenHash;
     private String email;
     private boolean done;
+    private String userId;
     private Map<String, Permission> groupsPermissions;
 
     public String getId() {
@@ -47,6 +48,14 @@ public class InvitedRegistration {
         return this;
     }
 
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
     public Map<String, Permission> getGroupsPermissions() {
         return groupsPermissions;
     }
diff --git a/gms/src/main/resources/sql/init.sql b/gms/src/main/resources/sql/init.sql
index 2849c2f..6f4693e 100644
--- a/gms/src/main/resources/sql/init.sql
+++ b/gms/src/main/resources/sql/init.sql
@@ -49,6 +49,7 @@ CREATE TABLE invited_registration_request (
   token_hash varchar NOT NULL,
   email varchar NOT NULL,
   creation_time timestamp DEFAULT NOW(),
+  "user" varchar NULL, -- for audit purposes
   done boolean,
   PRIMARY KEY(id)
 );
-- 
GitLab