From 480bb700adf2b50870f2fedffe745e2abd8713a8 Mon Sep 17 00:00:00 2001 From: Umputun Date: Wed, 14 Feb 2018 14:48:52 -0600 Subject: [PATCH] move avatar put to login --- app/rest/auth/middleware.go | 11 ++++++++++- app/rest/auth/providers.go | 3 ++- app/rest/server.go | 6 ------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/rest/auth/middleware.go b/app/rest/auth/middleware.go index e9072e7f..62b8eb39 100644 --- a/app/rest/auth/middleware.go +++ b/app/rest/auth/middleware.go @@ -6,6 +6,9 @@ import ( "github.com/gorilla/sessions" + "log" + + "github.com/umputun/remark/app/rest/avatar" "github.com/umputun/remark/app/rest/common" "github.com/umputun/remark/app/store" ) @@ -29,7 +32,7 @@ var devUser = store.User{ } // Auth middleware adds auth from session and populates user info -func Auth(sessionStore sessions.Store, admins []string, modes []Mode) func(http.Handler) http.Handler { +func Auth(sessionStore sessions.Store, avatarProxy avatar.Proxy, admins []string, modes []Mode) func(http.Handler) http.Handler { inModes := func(mode Mode) bool { for _, m := range modes { @@ -79,6 +82,12 @@ func Auth(sessionStore sessions.Store, admins []string, modes []Mode) func(http. } } + if avatarURL, e := avatarProxy.Put(user); e == nil { + user.Picture = avatarURL + } else { + log.Printf("[WARN] failed to proxy avatar, %s", e) + } + ctx := r.Context() ctx = context.WithValue(ctx, common.ContextKey("user"), user) r = r.WithContext(ctx) diff --git a/app/rest/auth/providers.go b/app/rest/auth/providers.go index 6dac954d..ce20dbbe 100644 --- a/app/rest/auth/providers.go +++ b/app/rest/auth/providers.go @@ -62,6 +62,7 @@ func NewGithub(p Params) Provider { // NewFacebook makes facebook oauth2 provider func NewFacebook(p Params) Provider { + return initProvider(p, Provider{ Name: "facebook", Endpoint: facebook.Endpoint, @@ -79,7 +80,7 @@ func NewFacebook(p Params) Provider { } userInfo.ID = "facebook_" + userInfo.ID - // picture under picture[data[url]] TODO: make this horror simpler + // picture under picture[data[url]] if p, ok := data["picture"]; ok { if picMap, ok := p.(map[string]interface{}); ok { if d, ok := picMap["data"]; ok { diff --git a/app/rest/server.go b/app/rest/server.go index bf9b8ed0..cdfc8548 100644 --- a/app/rest/server.go +++ b/app/rest/server.go @@ -153,12 +153,6 @@ func (s *Server) createCommentCtrl(w http.ResponseWriter, r *http.Request) { // render markdown comment.Text = string(blackfriday.Run([]byte(comment.Text), blackfriday.WithNoExtensions())) - if avatarURL, e := s.AvatarProxy.Put(user); e == nil { - comment.User.Picture = avatarURL - } else { - log.Printf("[WARN] failed to proxy avatar, %s", e) - } - log.Printf("[DEBUG] create comment %+v", comment) // check if user blocked