diff options
author | Nick Frazier <nrflaw@gmail.com> | 2017-10-19 08:10:29 -0400 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-10-19 08:10:29 -0400 |
commit | 7fa4913f902457dadb1a4806ce194eb122dbc090 (patch) | |
tree | ea340ad55f6dfa1e6ee647e0a87af69ac406e25d /app/session.go | |
parent | 8e19ba029f889519d93cf272960dce858971106c (diff) | |
download | chat-7fa4913f902457dadb1a4806ce194eb122dbc090.tar.gz chat-7fa4913f902457dadb1a4806ce194eb122dbc090.tar.bz2 chat-7fa4913f902457dadb1a4806ce194eb122dbc090.zip |
[PLT-7794] Add user access token enable/disable endpoints (#7630)
* Add column to UserAccessTokens table
* PLT-7794 Add user access token enable/disable endpoints
* replaced eliminated global variable
* updates to user_access_token_store and upgrade.go
* style fix and cleanup
Diffstat (limited to 'app/session.go')
-rw-r--r-- | app/session.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/session.go b/app/session.go index f8b931043..7492a7c37 100644 --- a/app/session.go +++ b/app/session.go @@ -268,6 +268,10 @@ func (a *App) createSessionForUserAccessToken(tokenString string) (*model.Sessio return nil, model.NewAppError("createSessionForUserAccessToken", "app.user_access_token.invalid_or_missing", nil, result.Err.Error(), http.StatusUnauthorized) } else { token = result.Data.(*model.UserAccessToken) + + if token.IsActive == false { + return nil, model.NewAppError("createSessionForUserAccessToken", "app.user_access_token.invalid_or_missing", nil, "inactive_token", http.StatusUnauthorized) + } } var user *model.User @@ -320,6 +324,40 @@ func (a *App) RevokeUserAccessToken(token *model.UserAccessToken) *model.AppErro return a.RevokeSession(session) } +func (a *App) DisableUserAccessToken(token *model.UserAccessToken) *model.AppError { + var session *model.Session + if result := <-a.Srv.Store.Session().Get(token.Token); result.Err == nil { + session = result.Data.(*model.Session) + } + + if result := <-a.Srv.Store.UserAccessToken().UpdateTokenDisable(token.Id); result.Err != nil { + return result.Err + } + + if session == nil { + return nil + } + + return a.RevokeSession(session) +} + +func (a *App) EnableUserAccessToken(token *model.UserAccessToken) *model.AppError { + var session *model.Session + if result := <-a.Srv.Store.Session().Get(token.Token); result.Err == nil { + session = result.Data.(*model.Session) + } + + if result := <-a.Srv.Store.UserAccessToken().UpdateTokenEnable(token.Id); result.Err != nil { + return result.Err + } + + if session == nil { + return nil + } + + return nil +} + func (a *App) GetUserAccessTokensForUser(userId string, page, perPage int) ([]*model.UserAccessToken, *model.AppError) { if result := <-a.Srv.Store.UserAccessToken().GetByUser(userId, page*perPage, perPage); result.Err != nil { return nil, result.Err |