1
0
mirror of https://github.com/netbirdio/netbird.git synced 2025-08-13 17:07:30 +02:00

[management] fix lastLogin on dashboard ()

This commit is contained in:
Pascal Fischer
2025-04-23 15:54:49 +02:00
committed by GitHub
parent 197761ba4d
commit 986eb8c1e0
3 changed files with 25 additions and 6 deletions

@ -62,6 +62,7 @@ func NewAPIHandler(
authManager, authManager,
accountManager.GetAccountIDFromUserAuth, accountManager.GetAccountIDFromUserAuth,
accountManager.SyncUserJWTGroups, accountManager.SyncUserJWTGroups,
accountManager.GetUserFromUserAuth,
) )
corsMiddleware := cors.AllowAll() corsMiddleware := cors.AllowAll()

@ -15,15 +15,19 @@ import (
"github.com/netbirdio/netbird/management/server/http/middleware/bypass" "github.com/netbirdio/netbird/management/server/http/middleware/bypass"
"github.com/netbirdio/netbird/management/server/http/util" "github.com/netbirdio/netbird/management/server/http/util"
"github.com/netbirdio/netbird/management/server/status" "github.com/netbirdio/netbird/management/server/status"
"github.com/netbirdio/netbird/management/server/types"
) )
type EnsureAccountFunc func(ctx context.Context, userAuth nbcontext.UserAuth) (string, string, error) type EnsureAccountFunc func(ctx context.Context, userAuth nbcontext.UserAuth) (string, string, error)
type SyncUserJWTGroupsFunc func(ctx context.Context, userAuth nbcontext.UserAuth) error type SyncUserJWTGroupsFunc func(ctx context.Context, userAuth nbcontext.UserAuth) error
type GetUserFromUserAuthFunc func(ctx context.Context, userAuth nbcontext.UserAuth) (*types.User, error)
// AuthMiddleware middleware to verify personal access tokens (PAT) and JWT tokens // AuthMiddleware middleware to verify personal access tokens (PAT) and JWT tokens
type AuthMiddleware struct { type AuthMiddleware struct {
authManager auth.Manager authManager auth.Manager
ensureAccount EnsureAccountFunc ensureAccount EnsureAccountFunc
getUserFromUserAuth GetUserFromUserAuthFunc
syncUserJWTGroups SyncUserJWTGroupsFunc syncUserJWTGroups SyncUserJWTGroupsFunc
} }
@ -32,11 +36,13 @@ func NewAuthMiddleware(
authManager auth.Manager, authManager auth.Manager,
ensureAccount EnsureAccountFunc, ensureAccount EnsureAccountFunc,
syncUserJWTGroups SyncUserJWTGroupsFunc, syncUserJWTGroups SyncUserJWTGroupsFunc,
getUserFromUserAuth GetUserFromUserAuthFunc,
) *AuthMiddleware { ) *AuthMiddleware {
return &AuthMiddleware{ return &AuthMiddleware{
authManager: authManager, authManager: authManager,
ensureAccount: ensureAccount, ensureAccount: ensureAccount,
syncUserJWTGroups: syncUserJWTGroups, syncUserJWTGroups: syncUserJWTGroups,
getUserFromUserAuth: getUserFromUserAuth,
} }
} }
@ -123,6 +129,12 @@ func (m *AuthMiddleware) checkJWTFromRequest(r *http.Request, auth []string) (*h
log.WithContext(ctx).Errorf("HTTP server failed to sync user JWT groups: %s", err) log.WithContext(ctx).Errorf("HTTP server failed to sync user JWT groups: %s", err)
} }
_, err = m.getUserFromUserAuth(ctx, userAuth)
if err != nil {
log.WithContext(ctx).Errorf("HTTP server failed to update user from user auth: %s", err)
return r, err
}
return nbcontext.SetUserAuthInRequest(r, userAuth), nil return nbcontext.SetUserAuthInRequest(r, userAuth), nil
} }

@ -190,6 +190,9 @@ func TestAuthMiddleware_Handler(t *testing.T) {
func(ctx context.Context, userAuth nbcontext.UserAuth) error { func(ctx context.Context, userAuth nbcontext.UserAuth) error {
return nil return nil
}, },
func(ctx context.Context, userAuth nbcontext.UserAuth) (*types.User, error) {
return &types.User{}, nil
},
) )
handlerToTest := authMiddleware.Handler(nextHandler) handlerToTest := authMiddleware.Handler(nextHandler)
@ -291,6 +294,9 @@ func TestAuthMiddleware_Handler_Child(t *testing.T) {
func(ctx context.Context, userAuth nbcontext.UserAuth) error { func(ctx context.Context, userAuth nbcontext.UserAuth) error {
return nil return nil
}, },
func(ctx context.Context, userAuth nbcontext.UserAuth) (*types.User, error) {
return &types.User{}, nil
},
) )
for _, tc := range tt { for _, tc := range tt {