diff --git a/scm-core/src/main/java/sonia/scm/util/ValidationUtil.java b/scm-core/src/main/java/sonia/scm/util/ValidationUtil.java index 617bb13e87..71347e6277 100644 --- a/scm-core/src/main/java/sonia/scm/util/ValidationUtil.java +++ b/scm-core/src/main/java/sonia/scm/util/ValidationUtil.java @@ -48,6 +48,12 @@ public class ValidationUtil private static final String REGEX_MAIL = "^[A-z0-9][\\w.-]*@[A-z0-9][\\w\\-\\.]+\\.[A-z0-9]{2,6}$"; + /** Field description */ + private static final String REGEX_NAME = "^[A-z0-9\\.\\-_]+$"; + + /** Field description */ + private static final String REGEX_USERNAME = "^[A-z0-9\\.\\-_@]+$"; + //~--- get methods ---------------------------------------------------------- /** @@ -80,6 +86,21 @@ public class ValidationUtil return value.matches(REGEX_MAIL); } + /** + * Method description + * + * + * @param name + * + * @return + */ + public static boolean isNameValid(String name) + { + AssertUtil.assertIsNotNull(name); + + return name.matches(REGEX_NAME); + } + /** * Method description * @@ -112,6 +133,21 @@ public class ValidationUtil return result; } + /** + * Method description + * + * + * @param username + * + * @return + */ + public static boolean isUsernameValid(String username) + { + AssertUtil.assertIsNotNull(username); + + return username.matches(REGEX_USERNAME); + } + /** * Method description * diff --git a/scm-core/src/test/java/sonia/scm/util/ValidationUtilTest.java b/scm-core/src/test/java/sonia/scm/util/ValidationUtilTest.java index c44c299943..e18871af24 100644 --- a/scm-core/src/test/java/sonia/scm/util/ValidationUtilTest.java +++ b/scm-core/src/test/java/sonia/scm/util/ValidationUtilTest.java @@ -89,6 +89,29 @@ public class ValidationUtilTest assertFalse(ValidationUtil.isMailAddressValid("s.sdorra @ostfalia.de")); } + /** + * Method description + * + */ + @Test + public void testIsNameValid() + { + + // true + assertTrue(ValidationUtil.isNameValid("test")); + assertTrue(ValidationUtil.isNameValid("test.git")); + assertTrue(ValidationUtil.isNameValid("Test123.git")); + assertTrue(ValidationUtil.isNameValid("Test123-git")); + assertTrue(ValidationUtil.isNameValid("Test_repository-123.git")); + + // false + assertFalse(ValidationUtil.isNameValid("test 123")); + assertFalse(ValidationUtil.isNameValid("test@123")); + assertFalse(ValidationUtil.isNameValid("test/123")); + assertFalse(ValidationUtil.isNameValid("test%123")); + assertFalse(ValidationUtil.isNameValid("test:123")); + } + /** * Method description * @@ -106,4 +129,27 @@ public class ValidationUtilTest assertFalse(ValidationUtil.isNotContaining("test", "es")); assertFalse(ValidationUtil.isNotContaining("test", "t")); } + + /** + * Method description + * + */ + @Test + public void testIsUsernameValid() + { + + // true + assertTrue(ValidationUtil.isUsernameValid("test")); + assertTrue(ValidationUtil.isUsernameValid("test.git")); + assertTrue(ValidationUtil.isUsernameValid("Test123.git")); + assertTrue(ValidationUtil.isUsernameValid("Test123-git")); + assertTrue(ValidationUtil.isUsernameValid("Test_user-123.git")); + assertTrue(ValidationUtil.isUsernameValid("test@scm-manager.de")); + + // false + assertFalse(ValidationUtil.isUsernameValid("test 123")); + assertFalse(ValidationUtil.isUsernameValid("test/123")); + assertFalse(ValidationUtil.isUsernameValid("test%123")); + assertFalse(ValidationUtil.isUsernameValid("test:123")); + } }