diff options
-rw-r--r-- | api/context.go | 10 | ||||
-rw-r--r-- | api/oauth.go | 2 | ||||
-rw-r--r-- | api/post.go | 2 | ||||
-rw-r--r-- | api/team.go | 4 | ||||
-rw-r--r-- | api/user.go | 24 | ||||
-rw-r--r-- | api/user_test.go | 2 | ||||
-rw-r--r-- | store/sql_session_store.go | 23 | ||||
-rw-r--r-- | store/sql_session_store_test.go | 53 | ||||
-rw-r--r-- | store/sql_user_store_test.go | 5 | ||||
-rw-r--r-- | store/store.go | 16 | ||||
-rw-r--r-- | web/web.go | 6 |
11 files changed, 75 insertions, 72 deletions
diff --git a/api/context.go b/api/context.go index 13f0f2c42..2dcf51e10 100644 --- a/api/context.go +++ b/api/context.go @@ -162,7 +162,7 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { } if len(token) != 0 { - session := GetSession(token) + session := GetSession(c.T, token) if session == nil || session.IsExpired() { c.RemoveSessionCookie(w, r) @@ -515,14 +515,14 @@ func Handle404(w http.ResponseWriter, r *http.Request) { RenderWebError(err, w, r) } -func GetSession(token string) *model.Session { +func GetSession(T goi18n.TranslateFunc, token string) *model.Session { var session *model.Session if ts, ok := sessionCache.Get(token); ok { session = ts.(*model.Session) } if session == nil { - if sessionResult := <-Srv.Store.Session().Get(token); sessionResult.Err != nil { + if sessionResult := <-Srv.Store.Session().Get(T, token); sessionResult.Err != nil { l4g.Error("Invalid session token=" + token + ", err=" + sessionResult.Err.DetailedError) } else { session = sessionResult.Data.(*model.Session) @@ -551,9 +551,9 @@ func GetMultiSessionCookieTokens(r *http.Request) []string { return []string{} } -func FindMultiSessionForTeamId(r *http.Request, teamId string) (int64, *model.Session) { +func FindMultiSessionForTeamId(T goi18n.TranslateFunc, r *http.Request, teamId string) (int64, *model.Session) { for index, token := range GetMultiSessionCookieTokens(r) { - s := GetSession(token) + s := GetSession(T, token) if s != nil && !s.IsExpired() && s.TeamId == teamId { return int64(index), s } diff --git a/api/oauth.go b/api/oauth.go index 64848d0ce..47bedc20a 100644 --- a/api/oauth.go +++ b/api/oauth.go @@ -129,7 +129,7 @@ func allowOAuth(c *Context, w http.ResponseWriter, r *http.Request) { func RevokeAccessToken(T goi18n.TranslateFunc, token string) *model.AppError { - schan := Srv.Store.Session().Remove(token) + schan := Srv.Store.Session().Remove(T, token) sessionCache.Remove(token) var accessData *model.AccessData diff --git a/api/post.go b/api/post.go index c54bd59b3..f78dd0dcd 100644 --- a/api/post.go +++ b/api/post.go @@ -626,7 +626,7 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, } if *utils.Cfg.EmailSettings.SendPushNotifications { - sessionChan := Srv.Store.Session().GetSessions(id) + sessionChan := Srv.Store.Session().GetSessions(c.T, id) if result := <-sessionChan; result.Err != nil { l4g.Error("Failed to retrieve sessions in notifications id=%v, err=%v", id, result.Err) } else { diff --git a/api/team.go b/api/team.go index eb328ce7b..0d0f440d8 100644 --- a/api/team.go +++ b/api/team.go @@ -331,7 +331,7 @@ func revokeAllSessions(c *Context, w http.ResponseWriter, r *http.Request) { props := model.MapFromJson(r.Body) id := props["id"] - if result := <-Srv.Store.Session().Get(id); result.Err != nil { + if result := <-Srv.Store.Session().Get(c.T, id); result.Err != nil { c.Err = result.Err return } else { @@ -344,7 +344,7 @@ func revokeAllSessions(c *Context, w http.ResponseWriter, r *http.Request) { } else { sessionCache.Remove(session.Token) - if result := <-Srv.Store.Session().Remove(session.Id); result.Err != nil { + if result := <-Srv.Store.Session().Remove(c.T, session.Id); result.Err != nil { c.Err = result.Err return } else { diff --git a/api/user.go b/api/user.go index 142fe10b8..d529dfee8 100644 --- a/api/user.go +++ b/api/user.go @@ -516,7 +516,7 @@ func Login(c *Context, w http.ResponseWriter, r *http.Request, user *model.User, maxAge = *utils.Cfg.ServiceSettings.SessionLengthMobileInDays * 60 * 60 * 24 // A special case where we logout of all other sessions with the same Id - if result := <-Srv.Store.Session().GetSessions(user.Id); result.Err != nil { + if result := <-Srv.Store.Session().GetSessions(c.T, user.Id); result.Err != nil { c.Err = result.Err c.Err.StatusCode = http.StatusForbidden return @@ -563,7 +563,7 @@ func Login(c *Context, w http.ResponseWriter, r *http.Request, user *model.User, session.AddProp(model.SESSION_PROP_OS, os) session.AddProp(model.SESSION_PROP_BROWSER, fmt.Sprintf("%v/%v", bname, bversion)) - if result := <-Srv.Store.Session().Save(session); result.Err != nil { + if result := <-Srv.Store.Session().Save(c.T, session); result.Err != nil { c.Err = result.Err c.Err.StatusCode = http.StatusForbidden return @@ -579,7 +579,7 @@ func Login(c *Context, w http.ResponseWriter, r *http.Request, user *model.User, seen := make(map[string]string) seen[session.TeamId] = session.TeamId for _, token := range tokens { - s := GetSession(token) + s := GetSession(c.T, token) if s != nil && !s.IsExpired() && seen[s.TeamId] == "" { multiToken += " " + token seen[s.TeamId] = s.TeamId @@ -706,7 +706,7 @@ func revokeSession(c *Context, w http.ResponseWriter, r *http.Request) { } func RevokeSessionById(c *Context, sessionId string) { - if result := <-Srv.Store.Session().Get(sessionId); result.Err != nil { + if result := <-Srv.Store.Session().Get(c.T, sessionId); result.Err != nil { c.Err = result.Err } else { session := result.Data.(*model.Session) @@ -717,7 +717,7 @@ func RevokeSessionById(c *Context, sessionId string) { } else { sessionCache.Remove(session.Token) - if result := <-Srv.Store.Session().Remove(session.Id); result.Err != nil { + if result := <-Srv.Store.Session().Remove(c.T, session.Id); result.Err != nil { c.Err = result.Err } } @@ -725,7 +725,7 @@ func RevokeSessionById(c *Context, sessionId string) { } func RevokeAllSession(c *Context, userId string) { - if result := <-Srv.Store.Session().GetSessions(userId); result.Err != nil { + if result := <-Srv.Store.Session().GetSessions(c.T, userId); result.Err != nil { c.Err = result.Err return } else { @@ -737,7 +737,7 @@ func RevokeAllSession(c *Context, userId string) { RevokeAccessToken(c.T, session.Token) } else { sessionCache.Remove(session.Token) - if result := <-Srv.Store.Session().Remove(session.Id); result.Err != nil { + if result := <-Srv.Store.Session().Remove(c.T, session.Id); result.Err != nil { c.Err = result.Err return } @@ -755,7 +755,7 @@ func getSessions(c *Context, w http.ResponseWriter, r *http.Request) { return } - if result := <-Srv.Store.Session().GetSessions(id); result.Err != nil { + if result := <-Srv.Store.Session().GetSessions(c.T, id); result.Err != nil { c.Err = result.Err return } else { @@ -781,7 +781,7 @@ func logout(c *Context, w http.ResponseWriter, r *http.Request) { func Logout(c *Context, w http.ResponseWriter, r *http.Request) { c.LogAudit("") c.RemoveSessionCookie(w, r) - if result := <-Srv.Store.Session().Remove(c.Session.Id); result.Err != nil { + if result := <-Srv.Store.Session().Remove(c.T, c.Session.Id); result.Err != nil { c.Err = result.Err return } @@ -1280,8 +1280,8 @@ func updateRoles(c *Context, w http.ResponseWriter, r *http.Request) { return } - uchan := Srv.Store.Session().UpdateRoles(user.Id, new_roles) - gchan := Srv.Store.Session().GetSessions(user.Id) + uchan := Srv.Store.Session().UpdateRoles(c.T, user.Id, new_roles) + gchan := Srv.Store.Session().GetSessions(c.T, user.Id) if result := <-uchan; result.Err != nil { // soft error since the user roles were still updated @@ -1436,7 +1436,7 @@ func PermanentDeleteUser(c *Context, user *model.User) *model.AppError { UpdateActive(c, user, false) - if result := <-Srv.Store.Session().PermanentDeleteSessionsByUser(user.Id); result.Err != nil { + if result := <-Srv.Store.Session().PermanentDeleteSessionsByUser(c.T, user.Id); result.Err != nil { return result.Err } diff --git a/api/user_test.go b/api/user_test.go index 9a172805a..1728cdcde 100644 --- a/api/user_test.go +++ b/api/user_test.go @@ -186,7 +186,7 @@ func TestLoginWithDeviceId(t *testing.T) { t.Fatal(err) } - if sresult := <-Srv.Store.Session().Get(sessions[0].Id); sresult.Err == nil { + if sresult := <-Srv.Store.Session().Get(utils.T, sessions[0].Id); sresult.Err == nil { t.Fatal("session should have been removed") } } diff --git a/store/sql_session_store.go b/store/sql_session_store.go index 6b0a31443..e66b8529a 100644 --- a/store/sql_session_store.go +++ b/store/sql_session_store.go @@ -6,6 +6,7 @@ package store import ( l4g "github.com/alecthomas/log4go" "github.com/mattermost/platform/model" + goi18n "github.com/nicksnyder/go-i18n/i18n" ) type SqlSessionStore struct { @@ -37,7 +38,7 @@ func (me SqlSessionStore) CreateIndexesIfNotExists() { me.CreateIndexIfNotExists("idx_sessions_token", "Sessions", "Token") } -func (me SqlSessionStore) Save(session *model.Session) StoreChannel { +func (me SqlSessionStore) Save(T goi18n.TranslateFunc, session *model.Session) StoreChannel { storeChannel := make(StoreChannel) @@ -53,7 +54,7 @@ func (me SqlSessionStore) Save(session *model.Session) StoreChannel { session.PreSave() - if cur := <-me.CleanUpExpiredSessions(session.UserId); cur.Err != nil { + if cur := <-me.CleanUpExpiredSessions(T, session.UserId); cur.Err != nil { l4g.Error("Failed to cleanup sessions in Save err=%v", cur.Err) } @@ -70,7 +71,7 @@ func (me SqlSessionStore) Save(session *model.Session) StoreChannel { return storeChannel } -func (me SqlSessionStore) Get(sessionIdOrToken string) StoreChannel { +func (me SqlSessionStore) Get(T goi18n.TranslateFunc, sessionIdOrToken string) StoreChannel { storeChannel := make(StoreChannel) @@ -95,12 +96,12 @@ func (me SqlSessionStore) Get(sessionIdOrToken string) StoreChannel { return storeChannel } -func (me SqlSessionStore) GetSessions(userId string) StoreChannel { +func (me SqlSessionStore) GetSessions(T goi18n.TranslateFunc, userId string) StoreChannel { storeChannel := make(StoreChannel) go func() { - if cur := <-me.CleanUpExpiredSessions(userId); cur.Err != nil { + if cur := <-me.CleanUpExpiredSessions(T, userId); cur.Err != nil { l4g.Error("Failed to cleanup sessions in getSessions err=%v", cur.Err) } @@ -122,7 +123,7 @@ func (me SqlSessionStore) GetSessions(userId string) StoreChannel { return storeChannel } -func (me SqlSessionStore) Remove(sessionIdOrToken string) StoreChannel { +func (me SqlSessionStore) Remove(T goi18n.TranslateFunc, sessionIdOrToken string) StoreChannel { storeChannel := make(StoreChannel) go func() { @@ -140,7 +141,7 @@ func (me SqlSessionStore) Remove(sessionIdOrToken string) StoreChannel { return storeChannel } -func (me SqlSessionStore) RemoveAllSessionsForTeam(teamId string) StoreChannel { +func (me SqlSessionStore) RemoveAllSessionsForTeam(T goi18n.TranslateFunc, teamId string) StoreChannel { storeChannel := make(StoreChannel) go func() { @@ -158,7 +159,7 @@ func (me SqlSessionStore) RemoveAllSessionsForTeam(teamId string) StoreChannel { return storeChannel } -func (me SqlSessionStore) PermanentDeleteSessionsByUser(userId string) StoreChannel { +func (me SqlSessionStore) PermanentDeleteSessionsByUser(T goi18n.TranslateFunc, userId string) StoreChannel { storeChannel := make(StoreChannel) go func() { @@ -176,7 +177,7 @@ func (me SqlSessionStore) PermanentDeleteSessionsByUser(userId string) StoreChan return storeChannel } -func (me SqlSessionStore) CleanUpExpiredSessions(userId string) StoreChannel { +func (me SqlSessionStore) CleanUpExpiredSessions(T goi18n.TranslateFunc, userId string) StoreChannel { storeChannel := make(StoreChannel) go func() { @@ -195,7 +196,7 @@ func (me SqlSessionStore) CleanUpExpiredSessions(userId string) StoreChannel { return storeChannel } -func (me SqlSessionStore) UpdateLastActivityAt(sessionId string, time int64) StoreChannel { +func (me SqlSessionStore) UpdateLastActivityAt(T goi18n.TranslateFunc, sessionId string, time int64) StoreChannel { storeChannel := make(StoreChannel) go func() { @@ -214,7 +215,7 @@ func (me SqlSessionStore) UpdateLastActivityAt(sessionId string, time int64) Sto return storeChannel } -func (me SqlSessionStore) UpdateRoles(userId, roles string) StoreChannel { +func (me SqlSessionStore) UpdateRoles(T goi18n.TranslateFunc, userId, roles string) StoreChannel { storeChannel := make(StoreChannel) go func() { diff --git a/store/sql_session_store_test.go b/store/sql_session_store_test.go index cec8e93b0..73ec59fb0 100644 --- a/store/sql_session_store_test.go +++ b/store/sql_session_store_test.go @@ -5,6 +5,7 @@ package store import ( "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" "testing" ) @@ -15,7 +16,7 @@ func TestSessionStoreSave(t *testing.T) { s1.UserId = model.NewId() s1.TeamId = model.NewId() - if err := (<-store.Session().Save(&s1)).Err; err != nil { + if err := (<-store.Session().Save(utils.T, &s1)).Err; err != nil { t.Fatal(err) } } @@ -26,20 +27,20 @@ func TestSessionGet(t *testing.T) { s1 := model.Session{} s1.UserId = model.NewId() s1.TeamId = model.NewId() - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) s2 := model.Session{} s2.UserId = s1.UserId s2.TeamId = s1.TeamId - Must(store.Session().Save(&s2)) + Must(store.Session().Save(utils.T, &s2)) s3 := model.Session{} s3.UserId = s1.UserId s3.TeamId = s1.TeamId s3.ExpiresAt = 1 - Must(store.Session().Save(&s3)) + Must(store.Session().Save(utils.T, &s3)) - if rs1 := (<-store.Session().Get(s1.Id)); rs1.Err != nil { + if rs1 := (<-store.Session().Get(utils.T, s1.Id)); rs1.Err != nil { t.Fatal(rs1.Err) } else { if rs1.Data.(*model.Session).Id != s1.Id { @@ -47,7 +48,7 @@ func TestSessionGet(t *testing.T) { } } - if rs2 := (<-store.Session().GetSessions(s1.UserId)); rs2.Err != nil { + if rs2 := (<-store.Session().GetSessions(utils.T, s1.UserId)); rs2.Err != nil { t.Fatal(rs2.Err) } else { if len(rs2.Data.([]*model.Session)) != 2 { @@ -63,9 +64,9 @@ func TestSessionRemove(t *testing.T) { s1 := model.Session{} s1.UserId = model.NewId() s1.TeamId = model.NewId() - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) - if rs1 := (<-store.Session().Get(s1.Id)); rs1.Err != nil { + if rs1 := (<-store.Session().Get(utils.T, s1.Id)); rs1.Err != nil { t.Fatal(rs1.Err) } else { if rs1.Data.(*model.Session).Id != s1.Id { @@ -73,9 +74,9 @@ func TestSessionRemove(t *testing.T) { } } - Must(store.Session().Remove(s1.Id)) + Must(store.Session().Remove(utils.T, s1.Id)) - if rs2 := (<-store.Session().Get(s1.Id)); rs2.Err == nil { + if rs2 := (<-store.Session().Get(utils.T, s1.Id)); rs2.Err == nil { t.Fatal("should have been removed") } } @@ -86,9 +87,9 @@ func TestSessionRemoveAll(t *testing.T) { s1 := model.Session{} s1.UserId = model.NewId() s1.TeamId = model.NewId() - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) - if rs1 := (<-store.Session().Get(s1.Id)); rs1.Err != nil { + if rs1 := (<-store.Session().Get(utils.T, s1.Id)); rs1.Err != nil { t.Fatal(rs1.Err) } else { if rs1.Data.(*model.Session).Id != s1.Id { @@ -96,9 +97,9 @@ func TestSessionRemoveAll(t *testing.T) { } } - Must(store.Session().RemoveAllSessionsForTeam(s1.TeamId)) + Must(store.Session().RemoveAllSessionsForTeam(utils.T, s1.TeamId)) - if rs2 := (<-store.Session().Get(s1.Id)); rs2.Err == nil { + if rs2 := (<-store.Session().Get(utils.T, s1.Id)); rs2.Err == nil { t.Fatal("should have been removed") } } @@ -109,9 +110,9 @@ func TestSessionRemoveByUser(t *testing.T) { s1 := model.Session{} s1.UserId = model.NewId() s1.TeamId = model.NewId() - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) - if rs1 := (<-store.Session().Get(s1.Id)); rs1.Err != nil { + if rs1 := (<-store.Session().Get(utils.T, s1.Id)); rs1.Err != nil { t.Fatal(rs1.Err) } else { if rs1.Data.(*model.Session).Id != s1.Id { @@ -119,9 +120,9 @@ func TestSessionRemoveByUser(t *testing.T) { } } - Must(store.Session().PermanentDeleteSessionsByUser(s1.UserId)) + Must(store.Session().PermanentDeleteSessionsByUser(utils.T, s1.UserId)) - if rs2 := (<-store.Session().Get(s1.Id)); rs2.Err == nil { + if rs2 := (<-store.Session().Get(utils.T, s1.Id)); rs2.Err == nil { t.Fatal("should have been removed") } } @@ -132,9 +133,9 @@ func TestSessionRemoveToken(t *testing.T) { s1 := model.Session{} s1.UserId = model.NewId() s1.TeamId = model.NewId() - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) - if rs1 := (<-store.Session().Get(s1.Id)); rs1.Err != nil { + if rs1 := (<-store.Session().Get(utils.T, s1.Id)); rs1.Err != nil { t.Fatal(rs1.Err) } else { if rs1.Data.(*model.Session).Id != s1.Id { @@ -142,13 +143,13 @@ func TestSessionRemoveToken(t *testing.T) { } } - Must(store.Session().Remove(s1.Token)) + Must(store.Session().Remove(utils.T, s1.Token)) - if rs2 := (<-store.Session().Get(s1.Id)); rs2.Err == nil { + if rs2 := (<-store.Session().Get(utils.T, s1.Id)); rs2.Err == nil { t.Fatal("should have been removed") } - if rs3 := (<-store.Session().GetSessions(s1.UserId)); rs3.Err != nil { + if rs3 := (<-store.Session().GetSessions(utils.T, s1.UserId)); rs3.Err != nil { t.Fatal(rs3.Err) } else { if len(rs3.Data.([]*model.Session)) != 0 { @@ -163,13 +164,13 @@ func TestSessionStoreUpdateLastActivityAt(t *testing.T) { s1 := model.Session{} s1.UserId = model.NewId() s1.TeamId = model.NewId() - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) - if err := (<-store.Session().UpdateLastActivityAt(s1.Id, 1234567890)).Err; err != nil { + if err := (<-store.Session().UpdateLastActivityAt(utils.T, s1.Id, 1234567890)).Err; err != nil { t.Fatal(err) } - if r1 := <-store.Session().Get(s1.Id); r1.Err != nil { + if r1 := <-store.Session().Get(utils.T, s1.Id); r1.Err != nil { t.Fatal(r1.Err) } else { if r1.Data.(*model.Session).LastActivityAt != 1234567890 { diff --git a/store/sql_user_store_test.go b/store/sql_user_store_test.go index d1ee5e647..12bc6d172 100644 --- a/store/sql_user_store_test.go +++ b/store/sql_user_store_test.go @@ -5,6 +5,7 @@ package store import ( "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" "strings" "testing" "time" @@ -161,7 +162,7 @@ func TestUserStoreUpdateUserAndSessionActivity(t *testing.T) { s1 := model.Session{} s1.UserId = u1.Id s1.TeamId = u1.TeamId - Must(store.Session().Save(&s1)) + Must(store.Session().Save(utils.T, &s1)) if err := (<-store.User().UpdateUserAndSessionActivity(u1.Id, s1.Id, 1234567890)).Err; err != nil { t.Fatal(err) @@ -175,7 +176,7 @@ func TestUserStoreUpdateUserAndSessionActivity(t *testing.T) { } } - if r2 := <-store.Session().Get(s1.Id); r2.Err != nil { + if r2 := <-store.Session().Get(utils.T, s1.Id); r2.Err != nil { t.Fatal(r2.Err) } else { if r2.Data.(*model.Session).LastActivityAt != 1234567890 { diff --git a/store/store.go b/store/store.go index a6162fb07..c6e3d1273 100644 --- a/store/store.go +++ b/store/store.go @@ -130,14 +130,14 @@ type UserStore interface { } type SessionStore interface { - Save(session *model.Session) StoreChannel - Get(sessionIdOrToken string) StoreChannel - GetSessions(userId string) StoreChannel - Remove(sessionIdOrToken string) StoreChannel - RemoveAllSessionsForTeam(teamId string) StoreChannel - PermanentDeleteSessionsByUser(teamId string) StoreChannel - UpdateLastActivityAt(sessionId string, time int64) StoreChannel - UpdateRoles(userId string, roles string) StoreChannel + Save(T goi18n.TranslateFunc, session *model.Session) StoreChannel + Get(T goi18n.TranslateFunc, sessionIdOrToken string) StoreChannel + GetSessions(T goi18n.TranslateFunc, userId string) StoreChannel + Remove(T goi18n.TranslateFunc, sessionIdOrToken string) StoreChannel + RemoveAllSessionsForTeam(T goi18n.TranslateFunc, teamId string) StoreChannel + PermanentDeleteSessionsByUser(T goi18n.TranslateFunc, teamId string) StoreChannel + UpdateLastActivityAt(T goi18n.TranslateFunc, sessionId string, time int64) StoreChannel + UpdateRoles(T goi18n.TranslateFunc, userId string, roles string) StoreChannel } type AuditStore interface { diff --git a/web/web.go b/web/web.go index f9a899b6f..df65d6da8 100644 --- a/web/web.go +++ b/web/web.go @@ -238,7 +238,7 @@ func login(c *api.Context, w http.ResponseWriter, r *http.Request) { } // We still might be able to switch to this team because we've logged in before - _, session := api.FindMultiSessionForTeamId(r, team.Id) + _, session := api.FindMultiSessionForTeamId(c.T, r, team.Id) if session != nil { w.Header().Set(model.HEADER_TOKEN, session.Token) lastViewChannelName := "town-square" @@ -496,7 +496,7 @@ func checkSessionSwitch(c *api.Context, w http.ResponseWriter, r *http.Request, // We are logged into a different team. Lets see if we have another // session in the cookie that will give us access. if c.Session.TeamId != team.Id { - index, session := api.FindMultiSessionForTeamId(r, team.Id) + index, session := api.FindMultiSessionForTeamId(c.T, r, team.Id) if session == nil { // redirect to login http.Redirect(w, r, c.GetSiteURL()+"/"+team.Name+"/?redirect="+url.QueryEscape(r.URL.Path), http.StatusTemporaryRedirect) @@ -985,7 +985,7 @@ func getAccessToken(c *api.Context, w http.ResponseWriter, r *http.Request) { session := &model.Session{UserId: user.Id, TeamId: user.TeamId, Roles: user.Roles, IsOAuth: true} - if result := <-api.Srv.Store.Session().Save(session); result.Err != nil { + if result := <-api.Srv.Store.Session().Save(c.T, session); result.Err != nil { c.Err = model.NewAppError("getAccessToken", "server_error: Encountered internal server error while saving session to database", "") return } else { |