summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <dpursehouse@collab.net>2018-09-05 12:22:51 +0900
committerDavid Pursehouse <dpursehouse@collab.net>2018-09-05 12:28:01 +0900
commit3f988d2c28be7ab9d5b462ecccb79f697c1dc35a (patch)
tree63d0f0ea142eadbf0f7c702521fe37c1627b791d
parentdf5992e2ad86d9768d567a6cdde1cd5d712a4a20 (diff)
Revert refactoring of Account.USER_NAME_PATTERN
In changes I02ce9c6b6 ("Optimize USER_NAME_PATTERN string and its usage") and I8082b2ad3 ("Account.java: introduce compiled pattern and use where applicable"), the usage of Account.USER_NAME_PATTERN was refactored. This refactoring conflicts with separate refactoring that was done on the master branch. Instead of trying to resolve the conflicts, which ends up with the changes effectively being reverted, just revert them here. The refactoring that was done on master can then be backported here. This reverts commit 1ee03aa948553654283702220cbf36798ac1e45e. This reverts commit cf97d694febd26aeea66c6f16355a721860f80fd. Change-Id: I199d2f1531ec2b59d4263f1b72f1c967913bb9a5
-rw-r--r--gerrit-reviewdb/BUILD1
-rw-r--r--gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java20
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java3
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/ChangeUserName.java6
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/CreateAccount.java6
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/InvalidUserNameException.java5
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/args4j/AccountIdHandler.java4
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/group/AddMembers.java4
8 files changed, 19 insertions, 30 deletions
diff --git a/gerrit-reviewdb/BUILD b/gerrit-reviewdb/BUILD
index 67801447b5..35c1535dad 100644
--- a/gerrit-reviewdb/BUILD
+++ b/gerrit-reviewdb/BUILD
@@ -16,7 +16,6 @@ gwt_module(
visibility = ["//visibility:public"],
deps = [
"//gerrit-extension-api:client",
- "//lib:guava",
"//lib:gwtorm-client",
"//lib:gwtorm-client_src",
],
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java
index 3bfdd6cac2..f1c7056d0f 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java
@@ -16,13 +16,11 @@ package com.google.gerrit.reviewdb.client;
import static com.google.gerrit.reviewdb.client.RefNames.REFS_USERS;
-import com.google.common.annotations.GwtIncompatible;
import com.google.gerrit.extensions.client.DiffPreferencesInfo;
import com.google.gerrit.extensions.client.GeneralPreferencesInfo;
import com.google.gwtorm.client.Column;
import com.google.gwtorm.client.IntKey;
import java.sql.Timestamp;
-import java.util.regex.Pattern;
/**
* Information about a single user.
@@ -46,14 +44,15 @@ import java.util.regex.Pattern;
* </ul>
*/
public final class Account {
- private static final String USER_NAME_COMMON_PATTERN = "a-zA-Z0-9";
- public static final String USER_NAME_PATTERN_FIRST = "[" + USER_NAME_COMMON_PATTERN + "]";
- public static final String USER_NAME_PATTERN_REST = "[" + USER_NAME_COMMON_PATTERN + "._@-]";
- public static final String USER_NAME_PATTERN_LAST = USER_NAME_PATTERN_FIRST;
+ public static final String USER_NAME_PATTERN_FIRST = "[a-zA-Z0-9]";
+ public static final String USER_NAME_PATTERN_REST = "[a-zA-Z0-9._@-]";
+ public static final String USER_NAME_PATTERN_LAST = "[a-zA-Z0-9]";
/** Regular expression that {@link #userName} must match. */
public static final String USER_NAME_PATTERN =
- "^("
+ "^"
+ + //
+ "("
+ //
USER_NAME_PATTERN_FIRST
+ //
@@ -66,10 +65,9 @@ public final class Account {
+ //
USER_NAME_PATTERN_FIRST
+ //
- ")$";
-
- @GwtIncompatible("Unemulated class java.util.regex.Pattern")
- public static final Pattern USER_NAME_PATTERN_COMPILED = Pattern.compile(USER_NAME_PATTERN);
+ ")"
+ + //
+ "$";
/** Key local to Gerrit to identify a user. */
public static class Id extends IntKey<com.google.gwtorm.client.Key<?>> {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
index 90c876798d..9803143247 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
@@ -14,7 +14,6 @@
package com.google.gerrit.server.account;
-import static com.google.gerrit.reviewdb.client.Account.USER_NAME_PATTERN_COMPILED;
import static java.util.stream.Collectors.toSet;
import com.google.gerrit.reviewdb.client.Account;
@@ -106,7 +105,7 @@ public class AccountResolver {
return Collections.emptySet();
}
- if (USER_NAME_PATTERN_COMPILED.matcher(nameOrEmail).matches()) {
+ if (nameOrEmail.matches(Account.USER_NAME_PATTERN)) {
AccountState who = byId.getByUsername(nameOrEmail);
if (who != null) {
return Collections.singleton(who.getAccount().getId());
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/ChangeUserName.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/ChangeUserName.java
index ff3de30249..c9a7aabf21 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/ChangeUserName.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/ChangeUserName.java
@@ -14,12 +14,12 @@
package com.google.gerrit.server.account;
-import static com.google.gerrit.reviewdb.client.Account.USER_NAME_PATTERN_COMPILED;
import static com.google.gerrit.server.account.ExternalId.SCHEME_USERNAME;
import static java.util.stream.Collectors.toSet;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.errors.NameAlreadyUsedException;
+import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.ssh.SshKeyCache;
@@ -31,6 +31,7 @@ import com.google.inject.assistedinject.Assisted;
import java.io.IOException;
import java.util.Collection;
import java.util.concurrent.Callable;
+import java.util.regex.Pattern;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,6 +39,7 @@ import org.slf4j.LoggerFactory;
/** Operation to change the username of an account. */
public class ChangeUserName implements Callable<VoidResult> {
private static final Logger log = LoggerFactory.getLogger(ChangeUserName.class);
+ private static final Pattern USER_NAME_PATTERN = Pattern.compile(Account.USER_NAME_PATTERN);
public static final String USERNAME_CANNOT_BE_CHANGED = "Username cannot be changed.";
@@ -88,7 +90,7 @@ public class ChangeUserName implements Callable<VoidResult> {
ExternalIdsUpdate externalIdsUpdate = externalIdsUpdateFactory.create();
if (newUsername != null && !newUsername.isEmpty()) {
- if (!USER_NAME_PATTERN_COMPILED.matcher(newUsername).matches()) {
+ if (!USER_NAME_PATTERN.matcher(newUsername).matches()) {
throw new InvalidUserNameException();
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/CreateAccount.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/CreateAccount.java
index c166981d67..451246ba71 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/CreateAccount.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/CreateAccount.java
@@ -14,8 +14,6 @@
package com.google.gerrit.server.account;
-import static com.google.gerrit.reviewdb.client.Account.USER_NAME_PATTERN;
-import static com.google.gerrit.reviewdb.client.Account.USER_NAME_PATTERN_COMPILED;
import static com.google.gerrit.server.account.ExternalId.SCHEME_MAILTO;
import com.google.gerrit.audit.AuditService;
@@ -113,9 +111,9 @@ public class CreateAccount implements RestModifyView<TopLevelResource, AccountIn
throw new BadRequestException("username must match URL");
}
- if (!USER_NAME_PATTERN_COMPILED.matcher(username).matches()) {
+ if (!username.matches(Account.USER_NAME_PATTERN)) {
throw new BadRequestException(
- "Username '" + username + "' must comply with [" + USER_NAME_PATTERN + "] pattern.");
+ "Username '" + username + "' must contain only letters, numbers, _, - or .");
}
Set<AccountGroup.Id> groups = parseGroups(input.groups);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/InvalidUserNameException.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/InvalidUserNameException.java
index cf7a9b8df9..d60b7af85f 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/InvalidUserNameException.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/InvalidUserNameException.java
@@ -16,10 +16,7 @@ package com.google.gerrit.server.account;
import com.google.gerrit.reviewdb.client.Account;
-/**
- * Error indicating the SSH user name does not match {@link Account#USER_NAME_PATTERN_COMPILED}
- * pattern.
- */
+/** Error indicating the SSH user name does not match {@link Account#USER_NAME_PATTERN} pattern. */
public class InvalidUserNameException extends Exception {
private static final long serialVersionUID = 1L;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/args4j/AccountIdHandler.java b/gerrit-server/src/main/java/com/google/gerrit/server/args4j/AccountIdHandler.java
index 902726ab5f..75628015bb 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/args4j/AccountIdHandler.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/args4j/AccountIdHandler.java
@@ -14,8 +14,6 @@
package com.google.gerrit.server.args4j;
-import static com.google.gerrit.reviewdb.client.Account.USER_NAME_PATTERN_COMPILED;
-
import com.google.gerrit.extensions.client.AuthType;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.server.ReviewDb;
@@ -92,7 +90,7 @@ public class AccountIdHandler extends OptionHandler<Account.Id> {
}
private Account.Id createAccountByLdap(String user) throws CmdLineException, IOException {
- if (!USER_NAME_PATTERN_COMPILED.matcher(user).matches()) {
+ if (!user.matches(Account.USER_NAME_PATTERN)) {
throw new CmdLineException(owner, "user \"" + user + "\" not found");
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/AddMembers.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/AddMembers.java
index 6a828efe59..5c1a292cde 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/group/AddMembers.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/AddMembers.java
@@ -14,8 +14,6 @@
package com.google.gerrit.server.group;
-import static com.google.gerrit.reviewdb.client.Account.USER_NAME_PATTERN_COMPILED;
-
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.gerrit.audit.AuditService;
@@ -200,7 +198,7 @@ public class AddMembers implements RestModifyView<GroupResource, Input> {
}
private Account createAccountByLdap(String user) throws IOException {
- if (!USER_NAME_PATTERN_COMPILED.matcher(user).matches()) {
+ if (!user.matches(Account.USER_NAME_PATTERN)) {
return null;
}