mirror of
https://github.com/netbirdio/netbird.git
synced 2025-06-20 17:58:02 +02:00
[management] fix lastLogin on dashboard (#3725)
This commit is contained in:
parent
197761ba4d
commit
986eb8c1e0
@ -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,16 +15,20 @@ 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
|
||||||
syncUserJWTGroups SyncUserJWTGroupsFunc
|
getUserFromUserAuth GetUserFromUserAuthFunc
|
||||||
|
syncUserJWTGroups SyncUserJWTGroupsFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAuthMiddleware instance constructor
|
// NewAuthMiddleware instance constructor
|
||||||
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user