From 181a2e1c9af0d9eab0ac7a3e84551935bbfd7995 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 25 May 2018 15:37:26 +0200
Subject: [PATCH] user has info about terms of use consent

---
 .../model/user/ConfigurationElementType.java          |  5 +++++
 .../src/main/java/lcsb/mapviewer/model/user/User.java | 11 +++++++++++
 persist/src/db/11.1.0/fix_db_20180525.sql             |  1 +
 .../java/lcsb/mapviewer/api/users/UserRestImpl.java   |  7 +++++--
 4 files changed, 22 insertions(+), 2 deletions(-)
 create mode 100644 persist/src/db/11.1.0/fix_db_20180525.sql

diff --git a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java
index e38e7d1c1d..7937c6f9a5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java
+++ b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java
@@ -165,6 +165,11 @@ public enum ConfigurationElementType {
       + "(\"General overlays\") on this MINERVA server contain Protected Health Information (as defined in and subject to HIPAA).", 
       "", ConfigurationElementEditType.STRING, false),
 
+  /**
+   * File where legend 4/4 is stored.
+   */
+  TERMS_OF_USE("Terms of use file", "resources/other/terms_of_use.pdf", ConfigurationElementEditType.URL, false),
+
   ;
 
 	/**
diff --git a/model/src/main/java/lcsb/mapviewer/model/user/User.java b/model/src/main/java/lcsb/mapviewer/model/user/User.java
index 216c7837db..65d41b9972 100644
--- a/model/src/main/java/lcsb/mapviewer/model/user/User.java
+++ b/model/src/main/java/lcsb/mapviewer/model/user/User.java
@@ -92,6 +92,9 @@ public class User implements Serializable {
 	 */
 	private boolean							 removed					= false;
 
+    @Column(name="terms_of_use_consent")
+    private boolean                     termsOfUseConsent = false;
+
 	/**
 	 * Set of user privileges.
 	 */
@@ -333,4 +336,12 @@ public class User implements Serializable {
 		this.simpleColor = simpleColor;
 	}
 
+  public boolean isTermsOfUseConsent() {
+    return termsOfUseConsent;
+  }
+
+  public void setTermsOfUseConsent(boolean termsOfUseConsent) {
+    this.termsOfUseConsent = termsOfUseConsent;
+  }
+
 }
diff --git a/persist/src/db/11.1.0/fix_db_20180525.sql b/persist/src/db/11.1.0/fix_db_20180525.sql
new file mode 100644
index 0000000000..70350604e3
--- /dev/null
+++ b/persist/src/db/11.1.0/fix_db_20180525.sql
@@ -0,0 +1 @@
+alter table user_table add column terms_of_use_consent boolean default false;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
index bcd07b094b..d5194da508 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
@@ -79,6 +79,7 @@ public class UserRestImpl {
 			columnsSet.add("simpleColor");
 			columnsSet.add("removed");
 			columnsSet.add("privileges");
+            columnsSet.add("termsOfUseConsent");
 		} else {
 			for (String str : columns.split(",")) {
 				columnsSet.add(str);
@@ -108,8 +109,10 @@ public class UserRestImpl {
 				value = user.getMaxColor();
 			} else if (column.equals("simplecolor")) {
 				value = user.getSimpleColor();
-			} else if (column.equals("removed")) {
-				value = user.isRemoved();
+            } else if (column.equals("removed")) {
+              value = user.isRemoved();
+            } else if (column.equals("termsOfUseConsent")) {
+              value = user.isTermsOfUseConsent();				
 			} else if (column.equals("privileges") && admin) {
 				value = preparePrivileges(user);
 			} else {
-- 
GitLab