Skip to content

Commit bf25cfd

Browse files
committed
dashboard/app: fix admin checks for dev_appserver
Admin checks broke at some point for local app runs (the auth domain is overriden only in tests). Restore proper checking for dev_appserver.
1 parent 1be6895 commit bf25cfd

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

dashboard/app/access.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"net/http"
1111
"strings"
1212

13+
"google.golang.org/appengine/v2"
1314
db "google.golang.org/appengine/v2/datastore"
1415
"google.golang.org/appengine/v2/log"
1516
"google.golang.org/appengine/v2/user"
@@ -79,14 +80,20 @@ func accessLevel(c context.Context, r *http.Request) AccessLevel {
7980
return al
8081
}
8182

83+
const prodAuthDomain = "gmail.com"
84+
8285
// trustedAuthDomain for the test environment is "".
83-
var trustedAuthDomain = "gmail.com"
86+
var trustedAuthDomain = prodAuthDomain
8487

8588
// userAccessLevel returns authorization flag and AccessLevel.
8689
// (True, AccessAdmin) means authorized, Admin access.
8790
// Note - authorize higher levels first.
8891
func userAccessLevel(u *user.User, wantAccess string, config *GlobalConfig) (bool, AccessLevel) {
89-
if u == nil || u.AuthDomain != trustedAuthDomain {
92+
domainOK := u != nil && (u.AuthDomain == trustedAuthDomain ||
93+
// This supports local runs of dev_appserver.py where trustedAuthDomain
94+
// is not overriden, but dev_appserver.py sets u.AuthDomain="".
95+
appengine.IsDevAppServer() && trustedAuthDomain == prodAuthDomain)
96+
if !domainOK {
9097
return false, AccessPublic
9198
}
9299
if u.Admin {

0 commit comments

Comments
 (0)