summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kundrát <jkt@flaska.net>2017-01-20 11:13:52 +0100
committerDavid Pursehouse <dpursehouse@collab.net>2017-03-18 01:17:05 +0000
commita1be2c744567fe58b641a3ac1c0eb7b879682043 (patch)
treef1cf71590d512c70408ad212dbf7987f75dad1e4
parentf1f980d3a82e5de59d9618ddcd826c9a76944ebf (diff)
Support for at-sign (@) in usernames
Our SSO system (Shibboleth, a SAML thing) is a federated system which uses login names such as kundrat@cesnet.cz for unique identifiers. Change-Id: Ic2df0f270c178e7a93dde5d0460dd24f10edf321 Bug: Issue 2830
-rw-r--r--gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java12
-rw-r--r--gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java2
2 files changed, 13 insertions, 1 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java
index 3f8c1bcedb..37358accfa 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java
@@ -100,6 +100,18 @@ public class GroupsIT extends AbstractDaemonTest {
}
@Test
+ public void addMembersWithAtSign() throws Exception {
+ String g = createGroup("users");
+ TestAccount u10 = accounts.create("u10", "u10@example.com", "Full Name 10");
+ TestAccount u11_at = accounts.create("u11@something", "u11@example.com",
+ "Full Name 11 With At");
+ TestAccount u11 = accounts.create("u11", "u11.another@example.com",
+ "Full Name 11 Without At");
+ gApi.groups().id(g).addMembers(u10.username, u11_at.username);
+ assertMembers(g, u10, u11_at);
+ }
+
+ @Test
public void includeRemoveGroup() throws Exception {
String p = createGroup("parent");
String g = createGroup("newGroup");
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 9e36fc161c..1682195097 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
@@ -60,7 +60,7 @@ public final class Account {
}
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_REST = "[a-zA-Z0-9._@-]";
public static final String USER_NAME_PATTERN_LAST = "[a-zA-Z0-9]";
/** Regular expression that {@link #userName} must match. */