From bffc28d5f8a875db5f38ceff74255b15f576a9d0 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 3 Dec 2019 10:48:43 +0100
Subject: [PATCH] OO-4388: validate length of text fields in metadata form

---
 .../bc/meta/MetaInfoFormController.java       | 23 +++++++++++++++++++
 .../ui/EditTaxonomyLevelController.java       |  8 +++----
 2 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java
index 30f18415950..b0acc45990d 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/meta/MetaInfoFormController.java
@@ -549,9 +549,32 @@ public class MetaInfoFormController extends FormBasicController {
 			}
 		}
 		
+		valid &= validateTextfield(language, 16);
+		valid &= validateTextfield(title, 2000);
+		valid &= validateTextfield(comment, 32000);
+		valid &= validateTextfield(publisher, 2000);
+		valid &= validateTextfield(creator, 2000);
+		valid &= validateTextfield(city, 255);
+		valid &= validateTextfield(sourceEl, 2000);
+		valid &= validateTextfield(pages, 2000);
+		valid &= validateTextfield(filename, 255);
+		valid &= validateTextfield(url, 4000);
+		
 		return valid;
 	}
 	
+	private boolean validateTextfield(TextElement textEl, int maxSize) {
+		boolean allOk = true;
+		
+		textEl.clearError();
+		if(textEl.getValue() != null && textEl.getValue().length() >= maxSize) {
+			textEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(maxSize) });
+			allOk &= false;
+		}
+		
+		return allOk;
+	}
+	
 	/**
 	 * Get the form item representing this form
 	 * 
diff --git a/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java b/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java
index 1812a960e8d..a83ca99da67 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java
+++ b/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java
@@ -237,11 +237,11 @@ public class EditTaxonomyLevelController extends FormBasicController {
 		boolean allOk = true;
 		
 		textEl.clearError();
-		if(!StringHelper.containsNonWhitespace(identifierEl.getValue())) {
-			identifierEl.setErrorKey("form.legende.mandatory", null);
+		if(!StringHelper.containsNonWhitespace(textEl.getValue())) {
+			textEl.setErrorKey("form.legende.mandatory", null);
 			allOk &= false;
-		} else if(identifierEl.getValue().length() >= maxSize) {
-			identifierEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(maxSize) });
+		} else if(textEl.getValue().length() >= maxSize) {
+			textEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(maxSize) });
 			allOk &= false;
 		}
 		
-- 
GitLab