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 e38e7d1c1d1bfeb3bd8bf509ca6b4a193f2bf311..7937c6f9a5dfb0b05b81c2b7e55250ca9fa9b9fe 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 216c7837dbf52005d912857520f45af158284698..65d41b9972dd369814bf13b56f624c1ec4ec768e 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 0000000000000000000000000000000000000000..70350604e3100f5731f53e5b0162df1098da67f7
--- /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 bcd07b094b7ae9854fe2952e8f656493de13458f..d5194da508f70e18911e5530e9036ddd1bd19f7d 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 {