Skip to content
Snippets Groups Projects
Commit 4d9c99d1 authored by Neil-Jocelyn Schark's avatar Neil-Jocelyn Schark
Browse files

more tests

parent 8d493382
No related branches found
No related tags found
1 merge request!977Resolve "Improve token usage for users"
Pipeline #218750 failed
This commit is part of merge request !977. Comments created here will be created in the context of that merge request.
...@@ -183,21 +183,9 @@ func (s AuthServer) handleLogout(ctx context.Context, userName string) error { ...@@ -183,21 +183,9 @@ func (s AuthServer) handleLogout(ctx context.Context, userName string) error {
return err return err
} }
storedTokens := storedUser.GetTokens() err = removeTokenFromUserIfExists(storedUser, token)
foundToken := false if err != nil {
for _, storedToken := range storedTokens { status.Errorf(codes.Aborted, "Error removing token from user, it was either already logged out or otherwise not found")
if storedToken == token {
err := storedUser.RemoveToken(token)
if err != nil {
return status.Errorf(codes.Aborted, "error checking match of token provied for user")
}
foundToken = true
break
}
}
if !foundToken {
return status.Errorf(codes.Aborted, "missing match of token provied for user")
} }
err = s.userService.Update(&rbac.User{UserID: storedUser.ID(), err = s.userService.Update(&rbac.User{UserID: storedUser.ID(),
...@@ -227,3 +215,17 @@ func addTokenAndEnsureTokenLimit(userToUpdate rbacInterfaces.User, token string) ...@@ -227,3 +215,17 @@ func addTokenAndEnsureTokenLimit(userToUpdate rbacInterfaces.User, token string)
} }
return nil return nil
} }
func removeTokenFromUserIfExists(storedUser rbacInterfaces.User, token string) error {
storedTokens := storedUser.GetTokens()
for _, storedToken := range storedTokens {
if storedToken == token {
err := storedUser.RemoveToken(token)
if err != nil {
return errors.New("could not remove token from user")
}
return nil
}
}
return errors.New("token not found for user")
}
...@@ -319,3 +319,19 @@ func TestAuth_addTokenAndEnsureTokenLimit_removeOldKey(t *testing.T) { ...@@ -319,3 +319,19 @@ func TestAuth_addTokenAndEnsureTokenLimit_removeOldKey(t *testing.T) {
assert.Equal(t, "token2", user.GetTokens()[0]) assert.Equal(t, "token2", user.GetTokens()[0])
assert.Equal(t, "token3", user.GetTokens()[1]) assert.Equal(t, "token3", user.GetTokens()[1])
} }
func Test_removeTokenFromUserIfExists(t *testing.T) {
config.MaxTokensPerUser = 100
user := rbac.NewUser(uuid.New(), "testUser", map[string]string{}, "password", []string{"token1", "token2", "token3"}, "salt", conflict.Metadata{ResourceVersion: 0})
err := removeTokenFromUserIfExists(user, "token2")
assert.Nil(t, err)
assert.Equal(t, []string{"token1", "token3"}, user.GetTokens())
err = removeTokenFromUserIfExists(user, "token4")
assert.NotNil(t, err)
assert.Equal(t, []string{"token1", "token3"}, user.GetTokens())
user = rbac.NewUser(uuid.New(), "testUser", map[string]string{}, "password", []string{}, "salt", conflict.Metadata{ResourceVersion: 0})
err = removeTokenFromUserIfExists(user, "token4")
assert.NotNil(t, err)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment