mirror of
https://github.com/juanfont/headscale.git
synced 2026-10-31 02:34:07 +09:00
hscontrol: remove unused OIDC user change result
This commit is contained in:
1 parent
c0925962c2
commit
545ace5673
2 files changed
+10
-11
No files matched your search
+9
-10
@@ -19,7 +19,6 @@ import (
|
|||||||
"github.com/juanfont/headscale/hscontrol/db"
|
"github.com/juanfont/headscale/hscontrol/db"
|
||||||
"github.com/juanfont/headscale/hscontrol/templates"
|
"github.com/juanfont/headscale/hscontrol/templates"
|
||||||
"github.com/juanfont/headscale/hscontrol/types"
|
"github.com/juanfont/headscale/hscontrol/types"
|
||||||
"github.com/juanfont/headscale/hscontrol/types/change"
|
|
||||||
"github.com/juanfont/headscale/hscontrol/util"
|
"github.com/juanfont/headscale/hscontrol/util"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
@@ -371,7 +370,7 @@ func (a *AuthProviderOIDC) OIDCCallbackHandler(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
user, _, err := a.createOrUpdateUserFromClaim(&claims)
|
user, err := a.createOrUpdateUserFromClaim(&claims)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
httpUserError(writer, NewHTTPError(
|
httpUserError(writer, NewHTTPError(
|
||||||
http.StatusInternalServerError,
|
http.StatusInternalServerError,
|
||||||
@@ -697,6 +696,7 @@ func (a *AuthProviderOIDC) getAuthInfoFromState(state string) *AuthInfo {
|
|||||||
|
|
||||||
authInfo, ok := a.authCache.Peek(state)
|
authInfo, ok := a.authCache.Peek(state)
|
||||||
a.authCache.Remove(state)
|
a.authCache.Remove(state)
|
||||||
|
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -706,17 +706,16 @@ func (a *AuthProviderOIDC) getAuthInfoFromState(state string) *AuthInfo {
|
|||||||
|
|
||||||
func (a *AuthProviderOIDC) createOrUpdateUserFromClaim(
|
func (a *AuthProviderOIDC) createOrUpdateUserFromClaim(
|
||||||
claims *types.OIDCClaims,
|
claims *types.OIDCClaims,
|
||||||
) (*types.User, change.Change, error) {
|
) (*types.User, error) {
|
||||||
var (
|
var (
|
||||||
user *types.User
|
user *types.User
|
||||||
err error
|
err error
|
||||||
newUser bool
|
newUser bool
|
||||||
c change.Change
|
|
||||||
)
|
)
|
||||||
|
|
||||||
user, err = a.h.state.GetUserByOIDCIdentifier(claims.Identifier())
|
user, err = a.h.state.GetUserByOIDCIdentifier(claims.Identifier())
|
||||||
if err != nil && !errors.Is(err, db.ErrUserNotFound) {
|
if err != nil && !errors.Is(err, db.ErrUserNotFound) {
|
||||||
return nil, change.Change{}, fmt.Errorf("creating or updating user: %w", err)
|
return nil, fmt.Errorf("creating or updating user: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the user is still not found, create a new empty user.
|
// if the user is still not found, create a new empty user.
|
||||||
@@ -730,21 +729,21 @@ func (a *AuthProviderOIDC) createOrUpdateUserFromClaim(
|
|||||||
user.FromClaim(claims, a.cfg.EmailVerifiedRequired)
|
user.FromClaim(claims, a.cfg.EmailVerifiedRequired)
|
||||||
|
|
||||||
if newUser {
|
if newUser {
|
||||||
user, c, err = a.h.state.CreateUser(*user)
|
user, _, err = a.h.state.CreateUser(*user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, change.Change{}, fmt.Errorf("creating user: %w", err)
|
return nil, fmt.Errorf("creating user: %w", err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_, c, err = a.h.state.UpdateUser(types.UserID(user.ID), func(u *types.User) error {
|
_, _, err = a.h.state.UpdateUser(types.UserID(user.ID), func(u *types.User) error {
|
||||||
*u = *user
|
*u = *user
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, change.Change{}, fmt.Errorf("updating user: %w", err)
|
return nil, fmt.Errorf("updating user: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return user, c, nil
|
return user, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// registerConfirmCSRFCookie is the cookie name used to bind the
|
// registerConfirmCSRFCookie is the cookie name used to bind the
|
||||||
|
|||||||
@@ -926,7 +926,7 @@ func TestOIDCPendingCallbackPreservesSSHVerdict(t *testing.T) {
|
|||||||
require.True(t, ok)
|
require.True(t, ok)
|
||||||
|
|
||||||
principal := mockoidc.DefaultUser()
|
principal := mockoidc.DefaultUser()
|
||||||
user, _, err := a.createOrUpdateUserFromClaim(&types.OIDCClaims{
|
user, err := a.createOrUpdateUserFromClaim(&types.OIDCClaims{
|
||||||
Iss: b.idp.Issuer(),
|
Iss: b.idp.Issuer(),
|
||||||
Sub: principal.Subject,
|
Sub: principal.Subject,
|
||||||
Username: principal.PreferredUsername,
|
Username: principal.PreferredUsername,
|
||||||
|
|||||||
Reference in new issue
Block a user