pkg/services: Check errors (#19712)

* pkg/services: Check errors
* pkg/services: Don't treat context.Canceled|context.DeadlineExceeded as error
This commit is contained in:
Arve Knudsen
2019-10-22 14:08:18 +02:00
committed by GitHub
parent de5038441f
commit 2a78d2a61c
37 changed files with 431 additions and 191 deletions
+15 -8
View File
@@ -201,7 +201,10 @@ func (s *UserAuthTokenService) TryRotateToken(ctx context.Context, token *models
return false, nil
}
model := userAuthTokenFromUserToken(token)
model, err := userAuthTokenFromUserToken(token)
if err != nil {
return false, err
}
now := getTime()
@@ -262,7 +265,9 @@ func (s *UserAuthTokenService) TryRotateToken(ctx context.Context, token *models
s.log.Debug("auth token rotated", "affected", affected, "auth_token_id", model.Id, "userId", model.UserId)
if affected > 0 {
model.UnhashedToken = newToken
model.toUserToken(token)
if err := model.toUserToken(token); err != nil {
return false, err
}
return true, nil
}
@@ -274,10 +279,12 @@ func (s *UserAuthTokenService) RevokeToken(ctx context.Context, token *models.Us
return models.ErrUserTokenNotFound
}
model := userAuthTokenFromUserToken(token)
model, err := userAuthTokenFromUserToken(token)
if err != nil {
return err
}
var rowsAffected int64
var err error
err = s.SQLStore.WithDbSession(ctx, func(dbSession *sqlstore.DBSession) error {
rowsAffected, err = dbSession.Delete(model)
return err
@@ -347,7 +354,6 @@ func (s *UserAuthTokenService) BatchRevokeAllUserTokens(ctx context.Context, use
}
func (s *UserAuthTokenService) GetUserToken(ctx context.Context, userId, userTokenId int64) (*models.UserToken, error) {
var result models.UserToken
err := s.SQLStore.WithDbSession(ctx, func(dbSession *sqlstore.DBSession) error {
var token userAuthToken
@@ -360,8 +366,7 @@ func (s *UserAuthTokenService) GetUserToken(ctx context.Context, userId, userTok
return models.ErrUserTokenNotFound
}
token.toUserToken(&result)
return nil
return token.toUserToken(&result)
})
return &result, err
@@ -384,7 +389,9 @@ func (s *UserAuthTokenService) GetUserTokens(ctx context.Context, userId int64)
for _, token := range tokens {
var userToken models.UserToken
token.toUserToken(&userToken)
if err := token.toUserToken(&userToken); err != nil {
return err
}
result = append(result, &userToken)
}
+4 -2
View File
@@ -124,7 +124,8 @@ func TestUserAuthToken(t *testing.T) {
for i := 0; i < 3; i++ {
userId := userID + int64(i+1)
userIds = append(userIds, userId)
userAuthTokenService.CreateToken(context.Background(), userId, "192.168.10.11:1234", "some user agent")
_, err := userAuthTokenService.CreateToken(context.Background(), userId, "192.168.10.11:1234", "some user agent")
So(err, ShouldBeNil)
}
err := userAuthTokenService.BatchRevokeAllUserTokens(context.Background(), userIds)
@@ -441,7 +442,8 @@ func TestUserAuthToken(t *testing.T) {
utMap := utJSON.MustMap()
var uat userAuthToken
uat.fromUserToken(&ut)
err = uat.fromUserToken(&ut)
So(err, ShouldBeNil)
uatBytes, err := json.Marshal(uat)
So(err, ShouldBeNil)
uatJSON, err := simplejson.NewJson(uatBytes)
+3 -3
View File
@@ -21,10 +21,10 @@ type userAuthToken struct {
UnhashedToken string `xorm:"-"`
}
func userAuthTokenFromUserToken(ut *models.UserToken) *userAuthToken {
func userAuthTokenFromUserToken(ut *models.UserToken) (*userAuthToken, error) {
var uat userAuthToken
uat.fromUserToken(ut)
return &uat
err := uat.fromUserToken(ut)
return &uat, err
}
func (uat *userAuthToken) fromUserToken(ut *models.UserToken) error {
+6 -4
View File
@@ -13,9 +13,10 @@ func (srv *UserAuthTokenService) Run(ctx context.Context) error {
maxLifetime := time.Duration(srv.Cfg.LoginMaxLifetimeDays) * 24 * time.Hour
err := srv.ServerLockService.LockAndExecute(ctx, "cleanup expired auth tokens", time.Hour*12, func() {
srv.deleteExpiredTokens(ctx, maxInactiveLifetime, maxLifetime)
if _, err := srv.deleteExpiredTokens(ctx, maxInactiveLifetime, maxLifetime); err != nil {
srv.log.Error("An error occurred while deleting expired tokens", "err", err)
}
})
if err != nil {
srv.log.Error("failed to lock and execute cleanup of expired auth token", "error", err)
}
@@ -24,9 +25,10 @@ func (srv *UserAuthTokenService) Run(ctx context.Context) error {
select {
case <-ticker.C:
err := srv.ServerLockService.LockAndExecute(ctx, "cleanup expired auth tokens", time.Hour*12, func() {
srv.deleteExpiredTokens(ctx, maxInactiveLifetime, maxLifetime)
if _, err := srv.deleteExpiredTokens(ctx, maxInactiveLifetime, maxLifetime); err != nil {
srv.log.Error("An error occurred while deleting expired tokens", "err", err)
}
})
if err != nil {
srv.log.Error("failed to lock and execute cleanup of expired auth token", "error", err)
}