Migrate 'UserAccessToken.GetByToken' to Sync by default (#11321)

Этот коммит содержится в:
Shota Gvinepadze
2019-06-21 01:37:38 +04:00
коммит произвёл Jesús Espino
родитель 66993e1fae
Коммит e9e65fe8bb
5 изменённых файлов: 32 добавлений и 28 удалений

Просмотреть файл

@@ -262,12 +262,10 @@ func (a *App) CreateUserAccessToken(token *model.UserAccessToken) (*model.UserAc
} }
func (a *App) createSessionForUserAccessToken(tokenString string) (*model.Session, *model.AppError) { func (a *App) createSessionForUserAccessToken(tokenString string) (*model.Session, *model.AppError) {
var token *model.UserAccessToken token, err := a.Srv.Store.UserAccessToken().GetByToken(tokenString)
result := <-a.Srv.Store.UserAccessToken().GetByToken(tokenString) if err != nil {
if result.Err != nil { return nil, model.NewAppError("createSessionForUserAccessToken", "app.user_access_token.invalid_or_missing", nil, err.Error(), http.StatusUnauthorized)
return nil, model.NewAppError("createSessionForUserAccessToken", "app.user_access_token.invalid_or_missing", nil, result.Err.Error(), http.StatusUnauthorized)
} }
token = result.Data.(*model.UserAccessToken)
if !token.IsActive { if !token.IsActive {
return nil, model.NewAppError("createSessionForUserAccessToken", "app.user_access_token.invalid_or_missing", nil, "inactive_token", http.StatusUnauthorized) return nil, model.NewAppError("createSessionForUserAccessToken", "app.user_access_token.invalid_or_missing", nil, "inactive_token", http.StatusUnauthorized)

Просмотреть файл

@@ -172,20 +172,17 @@ func (s SqlUserAccessTokenStore) GetAll(offset, limit int) ([]*model.UserAccessT
return tokens, nil return tokens, nil
} }
func (s SqlUserAccessTokenStore) GetByToken(tokenString string) store.StoreChannel { func (s SqlUserAccessTokenStore) GetByToken(tokenString string) (*model.UserAccessToken, *model.AppError) {
return store.Do(func(result *store.StoreResult) { token := model.UserAccessToken{}
token := model.UserAccessToken{}
if err := s.GetReplica().SelectOne(&token, "SELECT * FROM UserAccessTokens WHERE Token = :Token", map[string]interface{}{"Token": tokenString}); err != nil { if err := s.GetReplica().SelectOne(&token, "SELECT * FROM UserAccessTokens WHERE Token = :Token", map[string]interface{}{"Token": tokenString}); err != nil {
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
result.Err = model.NewAppError("SqlUserAccessTokenStore.GetByToken", "store.sql_user_access_token.get_by_token.app_error", nil, err.Error(), http.StatusNotFound) return nil, model.NewAppError("SqlUserAccessTokenStore.GetByToken", "store.sql_user_access_token.get_by_token.app_error", nil, err.Error(), http.StatusNotFound)
} else {
result.Err = model.NewAppError("SqlUserAccessTokenStore.GetByToken", "store.sql_user_access_token.get_by_token.app_error", nil, err.Error(), http.StatusInternalServerError)
}
} }
return nil, model.NewAppError("SqlUserAccessTokenStore.GetByToken", "store.sql_user_access_token.get_by_token.app_error", nil, err.Error(), http.StatusInternalServerError)
}
result.Data = &token return &token, nil
})
} }
func (s SqlUserAccessTokenStore) GetByUser(userId string, offset, limit int) store.StoreChannel { func (s SqlUserAccessTokenStore) GetByUser(userId string, offset, limit int) store.StoreChannel {

Просмотреть файл

@@ -520,7 +520,7 @@ type UserAccessTokenStore interface {
DeleteAllForUser(userId string) StoreChannel DeleteAllForUser(userId string) StoreChannel
Get(tokenId string) (*model.UserAccessToken, *model.AppError) Get(tokenId string) (*model.UserAccessToken, *model.AppError)
GetAll(offset int, limit int) ([]*model.UserAccessToken, *model.AppError) GetAll(offset int, limit int) ([]*model.UserAccessToken, *model.AppError)
GetByToken(tokenString string) StoreChannel GetByToken(tokenString string) (*model.UserAccessToken, *model.AppError)
GetByUser(userId string, page, perPage int) StoreChannel GetByUser(userId string, page, perPage int) StoreChannel
Search(term string) StoreChannel Search(term string) StoreChannel
UpdateTokenEnable(tokenId string) StoreChannel UpdateTokenEnable(tokenId string) StoreChannel

Просмотреть файл

@@ -96,19 +96,28 @@ func (_m *UserAccessTokenStore) GetAll(offset int, limit int) ([]*model.UserAcce
} }
// GetByToken provides a mock function with given fields: tokenString // GetByToken provides a mock function with given fields: tokenString
func (_m *UserAccessTokenStore) GetByToken(tokenString string) store.StoreChannel { func (_m *UserAccessTokenStore) GetByToken(tokenString string) (*model.UserAccessToken, *model.AppError) {
ret := _m.Called(tokenString) ret := _m.Called(tokenString)
var r0 store.StoreChannel var r0 *model.UserAccessToken
if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(string) *model.UserAccessToken); ok {
r0 = rf(tokenString) r0 = rf(tokenString)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).(*model.UserAccessToken)
} }
} }
return r0 var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string) *model.AppError); ok {
r1 = rf(tokenString)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
} }
// GetByUser provides a mock function with given fields: userId, page, perPage // GetByUser provides a mock function with given fields: userId, page, perPage

Просмотреть файл

@@ -41,13 +41,13 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
t.Fatal("received incorrect token after save") t.Fatal("received incorrect token after save")
} }
if result := <-ss.UserAccessToken().GetByToken(uat.Token); result.Err != nil { if received, err2 := ss.UserAccessToken().GetByToken(uat.Token); err2 != nil {
t.Fatal(result.Err) t.Fatal(err2)
} else if received := result.Data.(*model.UserAccessToken); received.Token != uat.Token { } else if received.Token != uat.Token {
t.Fatal("received incorrect token after save") t.Fatal("received incorrect token after save")
} }
if result := <-ss.UserAccessToken().GetByToken("notarealtoken"); result.Err == nil { if _, err = ss.UserAccessToken().GetByToken("notarealtoken"); err == nil {
t.Fatal("should have failed on bad token") t.Fatal("should have failed on bad token")
} }
@@ -71,7 +71,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
t.Fatal("should error - session should be deleted") t.Fatal("should error - session should be deleted")
} }
if err = (<-ss.UserAccessToken().GetByToken(s1.Token)).Err; err == nil { if _, err = ss.UserAccessToken().GetByToken(s1.Token); err == nil {
t.Fatal("should error - access token should be deleted") t.Fatal("should error - access token should be deleted")
} }
@@ -94,7 +94,7 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) {
t.Fatal("should error - session should be deleted") t.Fatal("should error - session should be deleted")
} }
if err := (<-ss.UserAccessToken().GetByToken(s2.Token)).Err; err == nil { if _, err := ss.UserAccessToken().GetByToken(s2.Token); err == nil {
t.Fatal("should error - access token should be deleted") t.Fatal("should error - access token should be deleted")
} }
} }