diff options
author | Shawn O. Pearce <sop@google.com> | 2010-08-04 13:56:49 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2010-08-04 13:56:49 -0700 |
commit | 6cbee9cb644753ece51e33d59aaf17ccc1ac8497 (patch) | |
tree | eb01a6b73a30a8c3cc701fe6261de70b05b3b1ad | |
parent | 5e8dbd4f7eb07011c7d436a87a7d1c57634153f5 (diff) |
Search username cache before database by name
If the input string conforms to our username pattern, search the
username cache as it will be quicker than looking at the database
for a full name substring, and probably is going to match an account,
especially in small group settings where people know each other's
local usernames.
Change-Id: I827f59d9c0fc9ce5b515b9611561d718733036d2
Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java | 11 |
1 files changed, 7 insertions, 4 deletions
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 f1eb2e0b86..e738c6fab9 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 @@ -61,15 +61,18 @@ public class AccountResolver { return byId.get(Account.Id.parse(nameOrEmail)).getAccount(); } + if (nameOrEmail.matches(Account.USER_NAME_PATTERN)) { + Account who = findByUserName(nameOrEmail); + if (who != null) { + return who; + } + } + Account account = findByNameOrEmail(nameOrEmail); if (account != null) { return account; } - if (nameOrEmail.matches(Account.USER_NAME_PATTERN)) { - return findByUserName(nameOrEmail); - } - return null; } |