Merge with 2.0.0-m3

This commit is contained in:
René Pfeuffer
2019-03-29 11:54:17 +01:00
9 changed files with 16 additions and 35 deletions

View File

@@ -53,8 +53,8 @@ public final class ValidationUtil
"^[A-Za-z0-9][\\w.-]*@[A-Za-z0-9][\\w\\-\\.]*\\.[A-Za-z0-9][A-Za-z0-9-]+$";
/** Field description */
private static final String REGEX_NAME =
"^[A-Za-z0-9\\.\\-_@]|[^ ]([A-Za-z0-9\\.\\-_@ ]*[A-Za-z0-9\\.\\-_@]|[^ ])?$";
public static final String REGEX_NAME =
"^[A-Za-z0-9\\.\\-_][A-Za-z0-9\\.\\-_@]*$";
public static final String REGEX_REPOSITORYNAME = "(?!^\\.\\.$)(?!^\\.$)(?!.*[\\\\\\[\\]])^[A-Za-z0-9\\.][A-Za-z0-9\\.\\-_]*$";

View File

@@ -110,10 +110,10 @@ public class ValidationUtilTest
assertTrue(ValidationUtil.isNameValid("Test123-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 "));

View File

@@ -1,4 +1,4 @@
package sonia.scm.api.v2;
package sonia.scm.util;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -13,18 +13,18 @@ import java.util.stream.Stream;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertFalse;
import static sonia.scm.api.v2.ValidationConstraints.USER_GROUP_PATTERN;
import static sonia.scm.util.ValidationUtil.REGEX_NAME;
@RunWith(Parameterized.class)
public class ValidationConstraints_IllegalCharactersTest {
public class ValidationUtil_IllegalCharactersTest {
private static final List<Character> ACCEPTED_CHARS = asList('@', '_', '-', '.');
private final Pattern userGroupPattern=Pattern.compile(USER_GROUP_PATTERN);
private final Pattern userGroupPattern=Pattern.compile(REGEX_NAME);
private final String expression;
public ValidationConstraints_IllegalCharactersTest(String expression) {
public ValidationUtil_IllegalCharactersTest(String expression) {
this.expression = expression;
}

View File

@@ -37,7 +37,6 @@ package sonia.scm.repository.spi;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.common.value.qual.UnknownVal;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.lib.Ref;
@@ -118,8 +117,8 @@ public class GitBranchesCommand extends AbstractGitCommand implements BranchesCo
}
}
@UnknownVal
Optional<Ref> getRepositoryHeadRef(Git git) {
return GitUtil.getRepositoryHeadRef(git.getRepository());
}
}

View File

@@ -1,6 +1,5 @@
package sonia.scm.repository.spi;
import org.checkerframework.common.value.qual.UnknownVal;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.ListBranchCommand;
import org.eclipse.jgit.api.errors.GitAPIException;
@@ -57,7 +56,7 @@ class GitBranchesCommandTest {
}
@Override
@UnknownVal Optional<Ref> getRepositoryHeadRef(Git git) {
Optional<Ref> getRepositoryHeadRef(Git git) {
return of(master);
}
};

View File

@@ -1,14 +0,0 @@
package sonia.scm.api.v2;
public final class ValidationConstraints {
private ValidationConstraints() {}
/**
* A user or group name should not start with <code>@</code> or a whitespace
* and it not contains whitespaces
* and the characters: . - _ @ are allowed
*/
public static final String USER_GROUP_PATTERN = "^[A-Za-z0-9\\.\\-_][A-Za-z0-9\\.\\-_@]*$";
}

View File

@@ -7,14 +7,13 @@ import de.otto.edison.hal.Links;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import sonia.scm.util.ValidationUtil;
import javax.validation.constraints.Pattern;
import java.time.Instant;
import java.util.List;
import java.util.Map;
import static sonia.scm.api.v2.ValidationConstraints.USER_GROUP_PATTERN;
@Getter @Setter @NoArgsConstructor
public class GroupDto extends HalRepresentation {
@@ -22,7 +21,7 @@ public class GroupDto extends HalRepresentation {
private String description;
@JsonInclude(JsonInclude.Include.NON_NULL)
private Instant lastModified;
@Pattern(regexp = USER_GROUP_PATTERN)
@Pattern(regexp = ValidationUtil.REGEX_NAME)
private String name;
private String type;
private Map<String, String> properties;

View File

@@ -7,19 +7,18 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.NotEmpty;
import sonia.scm.util.ValidationUtil;
import javax.validation.constraints.Pattern;
import java.util.Collection;
import static sonia.scm.api.v2.ValidationConstraints.USER_GROUP_PATTERN;
@Getter @Setter @ToString @NoArgsConstructor
public class RepositoryPermissionDto extends HalRepresentation {
public static final String GROUP_PREFIX = "@";
@Pattern(regexp = USER_GROUP_PATTERN)
@Pattern(regexp = ValidationUtil.REGEX_NAME)
private String name;
@NotEmpty

View File

@@ -9,13 +9,12 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
import sonia.scm.util.ValidationUtil;
import javax.validation.constraints.Pattern;
import java.time.Instant;
import java.util.Map;
import static sonia.scm.api.v2.ValidationConstraints.USER_GROUP_PATTERN;
@NoArgsConstructor @Getter @Setter
public class UserDto extends HalRepresentation {
private boolean active;
@@ -26,7 +25,7 @@ public class UserDto extends HalRepresentation {
private Instant lastModified;
@NotEmpty @Email
private String mail;
@Pattern(regexp = USER_GROUP_PATTERN)
@Pattern(regexp = ValidationUtil.REGEX_NAME)
private String name;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String password;