Add getSchemeRest to AccountExternalId

Slightly cleans up parsing an externalId string.

Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce
2009-08-17 18:27:47 -07:00
parent 727d80fbe4
commit 70a0292ef0
4 changed files with 14 additions and 7 deletions

View File

@@ -218,11 +218,10 @@ class ExternalIdPanel extends Composite {
}
private String describe(final AccountExternalId k) {
final String id = k.getExternalId();
if (k.isScheme(AccountExternalId.SCHEME_GERRIT)) {
// A local user identity should just be itself.
//
return id.substring(AccountExternalId.SCHEME_GERRIT.length());
return k.getSchemeRest(AccountExternalId.SCHEME_GERRIT);
} else if (k.isScheme(AccountExternalId.SCHEME_MAILTO)) {
// Describe a mailto address as just its email address, which
@@ -239,9 +238,9 @@ class ExternalIdPanel extends Composite {
} else if (k.isScheme(AccountExternalId.LEGACY_GAE)) {
return OpenIdUtil.C.nameGoogle() + " (Imported from Google AppEngine)";
} else {
return k.getExternalId();
}
return id;
}
}
}

View File

@@ -77,7 +77,7 @@ public final class AccountExternalId {
continue;
}
if (e.getExternalId().startsWith(SCHEME_MAILTO)) {
if (e.isScheme(SCHEME_MAILTO)) {
// Don't ever consider an email address as a "recent login"
//
continue;
@@ -149,6 +149,10 @@ public final class AccountExternalId {
return id != null && id.startsWith(scheme);
}
public String getSchemeRest(final String scheme) {
return isScheme(scheme) ? getExternalId().substring(scheme.length()) : null;
}
public boolean isTrusted() {
return trusted;
}

View File

@@ -150,7 +150,7 @@ public class AccountManager {
private AuthResult create(final ReviewDb db, final AuthRequest who)
throws OrmException, AccountException {
if (authConfig.isAllowGoogleAccountUpgrade()
&& who.getExternalId().startsWith(OpenIdUtil.URL_GOOGLE + "?")
&& who.isScheme(OpenIdUtil.URL_GOOGLE + "?")
&& who.getEmailAddress() != null) {
final List<AccountExternalId> legacyAppEngine =
db.accountExternalIds().byExternal(

View File

@@ -57,8 +57,12 @@ public class AuthRequest {
return externalId;
}
public boolean isScheme(final String scheme) {
return getExternalId().startsWith(scheme);
}
public String getLocalUser() {
if (getExternalId().startsWith(SCHEME_GERRIT)) {
if (isScheme(SCHEME_GERRIT)) {
return getExternalId().substring(SCHEME_GERRIT.length());
}
return null;