diff --git a/app/retrogit.go b/app/retrogit.go index e6c66b8..fafbedc 100644 --- a/app/retrogit.go +++ b/app/retrogit.go @@ -56,7 +56,8 @@ func init() { router.HandleFunc("/account/set-initial-timezone", setInitialTimezoneHandler).Name("set-initial-timezone").Methods("POST") router.HandleFunc("/account/delete", deleteAccountHandler).Name("delete-account").Methods("POST") - router.HandleFunc("/admin/digest", digestAdminHandler) + router.HandleFunc("/admin/users", usersAdminHandler) + router.HandleFunc("/admin/digest", digestAdminHandler).Name("digest-admin") http.Handle("/", router) } @@ -608,6 +609,46 @@ func deleteAccountHandler(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, indexUrl.String(), http.StatusFound) } +func usersAdminHandler(w http.ResponseWriter, r *http.Request) { + c := appengine.NewContext(r) + accounts, err := getAllAccounts(c) + if err != nil { + c.Errorf("Error looking up accounts: %s", err.Error()) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + users := make([]map[string]interface{}, len(accounts)) + for i := range accounts { + account := &accounts[i] + oauthTransport := githubOAuthTransport(c) + oauthTransport.Token = &account.OAuthToken + githubClient := github.NewClient(oauthTransport.Client()) + + user, _, err := githubClient.Users.Get("") + + emailAddress, err := account.GetDigestEmailAddress(githubClient) + if err != nil { + emailAddress = err.Error() + } + + repos, reposErr := getRepos(c, githubClient, account, user) + + users[i] = map[string]interface{}{ + "Account": account, + "User": user, + "EmailAddress": emailAddress, + "Repos": repos, + "ReposError": reposErr, + } + } + var data = map[string]interface{}{ + "Users": users, + } + if err := templates["users-admin"].Execute(w, data); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } +} + func digestAdminHandler(w http.ResponseWriter, r *http.Request) { userId, err := strconv.Atoi(r.FormValue("user_id")) if err != nil { diff --git a/app/templates/digest-admin.html b/app/templates/digest-admin.html index 43c93f9..359ccb6 100644 --- a/app/templates/digest-admin.html +++ b/app/templates/digest-admin.html @@ -1,4 +1,4 @@ -{{define "title"}}Admin{{end}} +{{define "title"}}Digest Admin{{end}} {{define "body"}} diff --git a/app/templates/index.html b/app/templates/index.html index 5ecd8bf..eaf4813 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -8,14 +8,7 @@
You're signed in as - - {{.User.Login}} - + {{template "user" .User}} (
). You'll be getting a {{.SettingsSummary.Frequency}} digest of your past GitHub activity in {{.SettingsSummary.RepositoryCount}} repositories sent to