From d7fb0ffa4dd87647566c75511e260179e5d97503 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 25 Jul 2014 13:02:32 +0200
Subject: [PATCH] OO-990: check length of every fields

---
 .../RepositoryEditDescriptionController.java  | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java b/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java
index b79617ecaac..ae47e9f5e29 100644
--- a/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java
+++ b/src/main/java/org/olat/repository/ui/author/RepositoryEditDescriptionController.java
@@ -283,17 +283,20 @@ public class RepositoryEditDescriptionController extends FormBasicController {
 			objectives.setEnabled(!RepositoryEntryManagedFlag.isManaged(repositoryEntry, RepositoryEntryManagedFlag.objectives));
 			objectives.getEditorConfiguration().setFileBrowserUploadRelPath("media");
 			
+			
 			String req = (repositoryEntry.getRequirements() != null ? repositoryEntry.getRequirements() : " ");
 			requirements = uifactory.addRichTextElementForStringData("cif.requirements", "cif.requirements",
 					req, 10, -1,  false, mediaContainer, null, descCont, ureq.getUserSession(), getWindowControl());
 			requirements.setEnabled(!RepositoryEntryManagedFlag.isManaged(repositoryEntry, RepositoryEntryManagedFlag.requirements));
 			requirements.getEditorConfiguration().setFileBrowserUploadRelPath("media");
+			requirements.setMaxLength(2000);
 			
 			String cred = (repositoryEntry.getCredits() != null ? repositoryEntry.getCredits() : " ");
 			credits = uifactory.addRichTextElementForStringData("cif.credits", "cif.credits",
 					cred, 10, -1,  false, mediaContainer, null, descCont, ureq.getUserSession(), getWindowControl());
 			credits.setEnabled(!RepositoryEntryManagedFlag.isManaged(repositoryEntry, RepositoryEntryManagedFlag.credits));
 			credits.getEditorConfiguration().setFileBrowserUploadRelPath("media");
+			credits.setMaxLength(2000);
 			
 			uifactory.addSpacerElement("spacer4", descCont, false);
 		}
@@ -375,9 +378,29 @@ public class RepositoryEditDescriptionController extends FormBasicController {
 			displayName.clearError();
 		}
 
+		allOk &= validateTextElement(objectives, 2000);
+		allOk &= validateTextElement(requirements, 2000);
+		allOk &= validateTextElement(credits, 2000);
+		allOk &= validateTextElement(externalRef, 225);
+		allOk &= validateTextElement(expenditureOfWork, 225);
+		allOk &= validateTextElement(authors, 2000);
+
 		// Ok, passed all checks
 		return allOk & super.validateFormLogic(ureq);
 	}
+	
+	private boolean validateTextElement(TextElement el, int maxLength) {
+		boolean ok;
+		String val = el.getValue();
+		el.clearError();
+		if(val != null && val.length() > maxLength) {
+			el.setErrorKey("input.toolong", new String[]{ Integer.toString(maxLength) });
+			ok = false;
+		} else {
+			ok = true;
+		}
+		return ok;
+	}
 
 	@Override
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
-- 
GitLab