diff options
Diffstat (limited to 'dashboard/app/access.go')
| -rw-r--r-- | dashboard/app/access.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/dashboard/app/access.go b/dashboard/app/access.go index dadaed7f0..0e746aa20 100644 --- a/dashboard/app/access.go +++ b/dashboard/app/access.go @@ -49,6 +49,16 @@ func checkAccessLevel(c context.Context, r *http.Request, level AccessLevel) err // AuthDomain is broken in AppEngine tests. var isBrokenAuthDomainInTest = false +func emailInAuthDomains(email string, authDomains []string) bool { + for _, authDomain := range authDomains { + if strings.HasSuffix(email, authDomain) { + return true + } + } + + return false +} + func accessLevel(c context.Context, r *http.Request) AccessLevel { if user.IsAdmin(c) { switch r.FormValue("access") { @@ -63,7 +73,7 @@ func accessLevel(c context.Context, r *http.Request) AccessLevel { if u == nil || // Devappserver does not pass AuthDomain. u.AuthDomain != "gmail.com" && !isBrokenAuthDomainInTest || - !strings.HasSuffix(u.Email, getConfig(c).AuthDomain) { + !emailInAuthDomains(u.Email, getConfig(c).AuthDomains) { return AccessPublic } return AccessUser |
