From ceafd4035ae17f0f6c92d6d6f3331485087ba975 Mon Sep 17 00:00:00 2001 From: Mihai Parparita Date: Mon, 28 Jul 2014 21:36:55 -0700 Subject: [PATCH] Add sign out link. --- TODO | 1 - app/githop.go | 15 +++++++++------ app/templates/index.html | 10 ++++++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/TODO b/TODO index dd500cf..77fb1dd 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,4 @@ TODO -- Sign out link - Persist OAuth token in the datastore and use session cookies - Flash message and sign out when OAuth token has expired/is invalid - Handle pagination for user repository list diff --git a/app/githop.go b/app/githop.go index 560cacf..ca50494 100644 --- a/app/githop.go +++ b/app/githop.go @@ -157,7 +157,7 @@ func signInHandler(w http.ResponseWriter, r *http.Request) { func signOutHandler(w http.ResponseWriter, r *http.Request) { session, _ := sessionStore.Get(r, sessionConfig.CookieName) - session.Options.MaxAge = 0 + session.Options.MaxAge = -1 session.Save(r, w) indexUrl, _ := router.Get("index").URL() http.Redirect(w, r, indexUrl.String(), http.StatusFound) @@ -168,10 +168,10 @@ func indexHandler(w http.ResponseWriter, r *http.Request) { tokenEncoded, ok := session.Values[sessionConfig.TokenKey].(string) if !ok { signInUrl, _ := router.Get("sign-in").URL() - var signedOutParams = map[string]string{ + var data = map[string]string{ "SignInUrl": signInUrl.String(), } - if err := indexSignedOutTemplate.Execute(w, signedOutParams); err != nil { + if err := indexSignedOutTemplate.Execute(w, data); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } return @@ -239,8 +239,12 @@ func indexHandler(w http.ResponseWriter, r *http.Request) { if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } - - if err := indexTemplate.Execute(w, digest); err != nil { + signOutUrl, _ := router.Get("sign-out").URL() + var data = map[string]interface{}{ + "SignOutUrl": signOutUrl.String(), + "Digest": digest, + } + if err := indexTemplate.Execute(w, data); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } } @@ -262,7 +266,6 @@ func githubOAuthCallbackHandler(w http.ResponseWriter, r *http.Request) { session, _ := sessionStore.Get(r, sessionConfig.CookieName) session.Values[sessionConfig.TokenKey] = tokenEncoded session.Save(r, w) - log.Printf("session.Values: %s", session.Values) indexUrl, _ := router.Get("index").URL() http.Redirect(w, r, indexUrl.String(), http.StatusFound) } diff --git a/app/templates/index.html b/app/templates/index.html index be19215..0deb074 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -8,9 +8,15 @@

GitHop!

- {{.User.Login}}'s digest: +

+ + Sign Out + +

+ + {{.Digest.User.Login}}'s digest: