mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 03:12:13 +08:00

* AuthN: rename package to sync * AuthN: rename sync files * Ouath: Add mock for OauthTokenService * AuthN: Implement access token refresh hook * AuthN: remove feature check from hook * AuthN: register post auth hook for oauth token refresh
54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
package oauthtokentest
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/models"
|
|
"github.com/grafana/grafana/pkg/services/datasources"
|
|
"github.com/grafana/grafana/pkg/services/user"
|
|
"golang.org/x/oauth2"
|
|
)
|
|
|
|
type MockOauthTokenService struct {
|
|
GetCurrentOauthTokenFunc func(ctx context.Context, usr *user.SignedInUser) *oauth2.Token
|
|
IsOAuthPassThruEnabledFunc func(ds *datasources.DataSource) bool
|
|
HasOAuthEntryFunc func(ctx context.Context, usr *user.SignedInUser) (*models.UserAuth, bool, error)
|
|
InvalidateOAuthTokensFunc func(ctx context.Context, usr *models.UserAuth) error
|
|
TryTokenRefreshFunc func(ctx context.Context, usr *models.UserAuth) error
|
|
}
|
|
|
|
func (m *MockOauthTokenService) GetCurrentOAuthToken(ctx context.Context, usr *user.SignedInUser) *oauth2.Token {
|
|
if m.GetCurrentOauthTokenFunc != nil {
|
|
return m.GetCurrentOauthTokenFunc(ctx, usr)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *MockOauthTokenService) IsOAuthPassThruEnabled(ds *datasources.DataSource) bool {
|
|
if m.IsOAuthPassThruEnabledFunc != nil {
|
|
return m.IsOAuthPassThruEnabledFunc(ds)
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *MockOauthTokenService) HasOAuthEntry(ctx context.Context, usr *user.SignedInUser) (*models.UserAuth, bool, error) {
|
|
if m.HasOAuthEntryFunc != nil {
|
|
return m.HasOAuthEntryFunc(ctx, usr)
|
|
}
|
|
return nil, false, nil
|
|
}
|
|
|
|
func (m *MockOauthTokenService) InvalidateOAuthTokens(ctx context.Context, usr *models.UserAuth) error {
|
|
if m.InvalidateOAuthTokensFunc != nil {
|
|
return m.InvalidateOAuthTokensFunc(ctx, usr)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *MockOauthTokenService) TryTokenRefresh(ctx context.Context, usr *models.UserAuth) error {
|
|
if m.TryTokenRefreshFunc != nil {
|
|
return m.TryTokenRefreshFunc(ctx, usr)
|
|
}
|
|
return nil
|
|
}
|