From 152abc58c2d3b882fce05de36a0f57fc3761db67 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 28 Oct 2013 13:15:12 +0100 Subject: [PATCH] use same validation rules for user and group names --- .../java/sonia/scm/util/ValidationUtil.java | 11 +++-- .../sonia/scm/util/ValidationUtilTest.java | 43 +++++-------------- .../resources/js/override/ext.form.vtypes.js | 4 +- 3 files changed, 17 insertions(+), 41 deletions(-) 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 0b1a23f7bb..d0b67c5472 100644 --- a/scm-core/src/main/java/sonia/scm/util/ValidationUtil.java +++ b/scm-core/src/main/java/sonia/scm/util/ValidationUtil.java @@ -55,16 +55,13 @@ public final class ValidationUtil "^[A-z0-9][\\w.-]*@[A-z0-9][\\w\\-\\.]+\\.[A-z0-9]{2,6}$"; /** Field description */ - private static final String REGEX_NAME = "^[A-z0-9\\.\\-_]+$"; + private static final String REGEX_NAME = + "^[A-z0-9\\.\\-_@]|[^ ]([A-z0-9\\.\\-_@ ]*[A-z0-9\\.\\-_@]|[^ ])?$"; /** Field description */ private static final String REGEX_REPOSITORYNAME = "(?!^\\.\\.$)(?!^\\.$)(?!.*[\\\\\\[\\]])^[A-z0-9\\.][A-z0-9\\.\\-_/]*$"; - /** Field description */ - private static final String REGEX_USERNAME = - "^[A-z0-9\\.\\-_@]|[^ ]([A-z0-9\\.\\-_@ ]*[A-z0-9\\.\\-_@]|[^ ])?$"; - //~--- constructors --------------------------------------------------------- /** @@ -185,10 +182,12 @@ public final class ValidationUtil * @param username * * @return + * @deprecated use {@link #isNameValid(String)} */ + @Deprecated public static boolean isUsernameValid(String username) { - return Util.isNotEmpty(username) && username.matches(REGEX_USERNAME); + return isNameValid(username); } /** 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 a6ce29241c..620c2fae9d 100644 --- a/scm-core/src/test/java/sonia/scm/util/ValidationUtilTest.java +++ b/scm-core/src/test/java/sonia/scm/util/ValidationUtilTest.java @@ -102,14 +102,21 @@ public class ValidationUtilTest assertTrue(ValidationUtil.isNameValid("test.git")); assertTrue(ValidationUtil.isNameValid("Test123.git")); assertTrue(ValidationUtil.isNameValid("Test123-git")); - assertTrue(ValidationUtil.isNameValid("Test_repository-123.git")); + assertTrue(ValidationUtil.isNameValid("Test_user-123.git")); + assertTrue(ValidationUtil.isNameValid("test@scm-manager.de")); + assertTrue(ValidationUtil.isNameValid("test 123")); + assertTrue(ValidationUtil.isNameValid("t")); // 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 ")); assertFalse(ValidationUtil.isNameValid("test/123")); assertFalse(ValidationUtil.isNameValid("test%123")); assertFalse(ValidationUtil.isNameValid("test:123")); + assertFalse(ValidationUtil.isNameValid("t ")); + assertFalse(ValidationUtil.isNameValid(" t")); + assertFalse(ValidationUtil.isNameValid(" t ")); } /** @@ -229,34 +236,4 @@ public class ValidationUtilTest assertFalse(ValidationUtil.isRepositoryNameValid(path)); } } - - /** - * 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")); - assertTrue(ValidationUtil.isUsernameValid("test 123")); - assertTrue(ValidationUtil.isUsernameValid("t")); - - // false - assertFalse(ValidationUtil.isUsernameValid(" test 123")); - assertFalse(ValidationUtil.isUsernameValid(" test 123 ")); - assertFalse(ValidationUtil.isUsernameValid("test 123 ")); - assertFalse(ValidationUtil.isUsernameValid("test/123")); - assertFalse(ValidationUtil.isUsernameValid("test%123")); - assertFalse(ValidationUtil.isUsernameValid("test:123")); - assertFalse(ValidationUtil.isUsernameValid("t ")); - assertFalse(ValidationUtil.isUsernameValid(" t")); - assertFalse(ValidationUtil.isUsernameValid(" t ")); - } } diff --git a/scm-webapp/src/main/webapp/resources/js/override/ext.form.vtypes.js b/scm-webapp/src/main/webapp/resources/js/override/ext.form.vtypes.js index 80a5dec976..df17eeaee7 100644 --- a/scm-webapp/src/main/webapp/resources/js/override/ext.form.vtypes.js +++ b/scm-webapp/src/main/webapp/resources/js/override/ext.form.vtypes.js @@ -46,7 +46,7 @@ Ext.apply(Ext.form.VTypes, { // name validator name: function(val){ - return /^[A-z0-9\.\-_]+$/.test(val); + return val.match(/^[^ ][A-z0-9\.\-_@ ]*[^ ]$/); }, nameText: 'The name is invalid.', @@ -75,7 +75,7 @@ Ext.apply(Ext.form.VTypes, { // username validator username: function(val){ - return val.match(/^[^ ][A-z0-9\.\-_@ ]*[^ ]$/); + return name(val); }, usernameText: 'The username is invalid.'