mirror of https://github.com/grafana/grafana
OAuth: Introduce user_refresh_token setting and make it default for the selected providers (#71533)
* First changes * WIP docs * Align current tests * Add test for UseRefreshToken * Update docs * Fix * Remove unnecessary AuthCodeURL from generic_oauth * Change GitHub to disable use_refresh_token by defaultpull/71382/head^2
parent
1f3aa099d5
commit
dcf26564db
@ -0,0 +1,190 @@ |
|||||||
|
// Code generated by mockery v2.27.1. DO NOT EDIT.
|
||||||
|
|
||||||
|
package socialtest |
||||||
|
|
||||||
|
import ( |
||||||
|
bytes "bytes" |
||||||
|
context "context" |
||||||
|
|
||||||
|
http "net/http" |
||||||
|
|
||||||
|
mock "github.com/stretchr/testify/mock" |
||||||
|
|
||||||
|
oauth2 "golang.org/x/oauth2" |
||||||
|
|
||||||
|
social "github.com/grafana/grafana/pkg/login/social" |
||||||
|
) |
||||||
|
|
||||||
|
// MockSocialConnector is an autogenerated mock type for the SocialConnector type
|
||||||
|
type MockSocialConnector struct { |
||||||
|
mock.Mock |
||||||
|
} |
||||||
|
|
||||||
|
// AuthCodeURL provides a mock function with given fields: state, opts
|
||||||
|
func (_m *MockSocialConnector) AuthCodeURL(state string, opts ...oauth2.AuthCodeOption) string { |
||||||
|
_va := make([]interface{}, len(opts)) |
||||||
|
for _i := range opts { |
||||||
|
_va[_i] = opts[_i] |
||||||
|
} |
||||||
|
var _ca []interface{} |
||||||
|
_ca = append(_ca, state) |
||||||
|
_ca = append(_ca, _va...) |
||||||
|
ret := _m.Called(_ca...) |
||||||
|
|
||||||
|
var r0 string |
||||||
|
if rf, ok := ret.Get(0).(func(string, ...oauth2.AuthCodeOption) string); ok { |
||||||
|
r0 = rf(state, opts...) |
||||||
|
} else { |
||||||
|
r0 = ret.Get(0).(string) |
||||||
|
} |
||||||
|
|
||||||
|
return r0 |
||||||
|
} |
||||||
|
|
||||||
|
// Client provides a mock function with given fields: ctx, t
|
||||||
|
func (_m *MockSocialConnector) Client(ctx context.Context, t *oauth2.Token) *http.Client { |
||||||
|
ret := _m.Called(ctx, t) |
||||||
|
|
||||||
|
var r0 *http.Client |
||||||
|
if rf, ok := ret.Get(0).(func(context.Context, *oauth2.Token) *http.Client); ok { |
||||||
|
r0 = rf(ctx, t) |
||||||
|
} else { |
||||||
|
if ret.Get(0) != nil { |
||||||
|
r0 = ret.Get(0).(*http.Client) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return r0 |
||||||
|
} |
||||||
|
|
||||||
|
// Exchange provides a mock function with given fields: ctx, code, authOptions
|
||||||
|
func (_m *MockSocialConnector) Exchange(ctx context.Context, code string, authOptions ...oauth2.AuthCodeOption) (*oauth2.Token, error) { |
||||||
|
_va := make([]interface{}, len(authOptions)) |
||||||
|
for _i := range authOptions { |
||||||
|
_va[_i] = authOptions[_i] |
||||||
|
} |
||||||
|
var _ca []interface{} |
||||||
|
_ca = append(_ca, ctx, code) |
||||||
|
_ca = append(_ca, _va...) |
||||||
|
ret := _m.Called(_ca...) |
||||||
|
|
||||||
|
var r0 *oauth2.Token |
||||||
|
var r1 error |
||||||
|
if rf, ok := ret.Get(0).(func(context.Context, string, ...oauth2.AuthCodeOption) (*oauth2.Token, error)); ok { |
||||||
|
return rf(ctx, code, authOptions...) |
||||||
|
} |
||||||
|
if rf, ok := ret.Get(0).(func(context.Context, string, ...oauth2.AuthCodeOption) *oauth2.Token); ok { |
||||||
|
r0 = rf(ctx, code, authOptions...) |
||||||
|
} else { |
||||||
|
if ret.Get(0) != nil { |
||||||
|
r0 = ret.Get(0).(*oauth2.Token) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if rf, ok := ret.Get(1).(func(context.Context, string, ...oauth2.AuthCodeOption) error); ok { |
||||||
|
r1 = rf(ctx, code, authOptions...) |
||||||
|
} else { |
||||||
|
r1 = ret.Error(1) |
||||||
|
} |
||||||
|
|
||||||
|
return r0, r1 |
||||||
|
} |
||||||
|
|
||||||
|
// IsEmailAllowed provides a mock function with given fields: email
|
||||||
|
func (_m *MockSocialConnector) IsEmailAllowed(email string) bool { |
||||||
|
ret := _m.Called(email) |
||||||
|
|
||||||
|
var r0 bool |
||||||
|
if rf, ok := ret.Get(0).(func(string) bool); ok { |
||||||
|
r0 = rf(email) |
||||||
|
} else { |
||||||
|
r0 = ret.Get(0).(bool) |
||||||
|
} |
||||||
|
|
||||||
|
return r0 |
||||||
|
} |
||||||
|
|
||||||
|
// IsSignupAllowed provides a mock function with given fields:
|
||||||
|
func (_m *MockSocialConnector) IsSignupAllowed() bool { |
||||||
|
ret := _m.Called() |
||||||
|
|
||||||
|
var r0 bool |
||||||
|
if rf, ok := ret.Get(0).(func() bool); ok { |
||||||
|
r0 = rf() |
||||||
|
} else { |
||||||
|
r0 = ret.Get(0).(bool) |
||||||
|
} |
||||||
|
|
||||||
|
return r0 |
||||||
|
} |
||||||
|
|
||||||
|
// SupportBundleContent provides a mock function with given fields: _a0
|
||||||
|
func (_m *MockSocialConnector) SupportBundleContent(_a0 *bytes.Buffer) error { |
||||||
|
ret := _m.Called(_a0) |
||||||
|
|
||||||
|
var r0 error |
||||||
|
if rf, ok := ret.Get(0).(func(*bytes.Buffer) error); ok { |
||||||
|
r0 = rf(_a0) |
||||||
|
} else { |
||||||
|
r0 = ret.Error(0) |
||||||
|
} |
||||||
|
|
||||||
|
return r0 |
||||||
|
} |
||||||
|
|
||||||
|
// TokenSource provides a mock function with given fields: ctx, t
|
||||||
|
func (_m *MockSocialConnector) TokenSource(ctx context.Context, t *oauth2.Token) oauth2.TokenSource { |
||||||
|
ret := _m.Called(ctx, t) |
||||||
|
|
||||||
|
var r0 oauth2.TokenSource |
||||||
|
if rf, ok := ret.Get(0).(func(context.Context, *oauth2.Token) oauth2.TokenSource); ok { |
||||||
|
r0 = rf(ctx, t) |
||||||
|
} else { |
||||||
|
if ret.Get(0) != nil { |
||||||
|
r0 = ret.Get(0).(oauth2.TokenSource) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return r0 |
||||||
|
} |
||||||
|
|
||||||
|
// UserInfo provides a mock function with given fields: ctx, client, token
|
||||||
|
func (_m *MockSocialConnector) UserInfo(ctx context.Context, client *http.Client, token *oauth2.Token) (*social.BasicUserInfo, error) { |
||||||
|
ret := _m.Called(ctx, client, token) |
||||||
|
|
||||||
|
var r0 *social.BasicUserInfo |
||||||
|
var r1 error |
||||||
|
if rf, ok := ret.Get(0).(func(context.Context, *http.Client, *oauth2.Token) (*social.BasicUserInfo, error)); ok { |
||||||
|
return rf(ctx, client, token) |
||||||
|
} |
||||||
|
if rf, ok := ret.Get(0).(func(context.Context, *http.Client, *oauth2.Token) *social.BasicUserInfo); ok { |
||||||
|
r0 = rf(ctx, client, token) |
||||||
|
} else { |
||||||
|
if ret.Get(0) != nil { |
||||||
|
r0 = ret.Get(0).(*social.BasicUserInfo) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if rf, ok := ret.Get(1).(func(context.Context, *http.Client, *oauth2.Token) error); ok { |
||||||
|
r1 = rf(ctx, client, token) |
||||||
|
} else { |
||||||
|
r1 = ret.Error(1) |
||||||
|
} |
||||||
|
|
||||||
|
return r0, r1 |
||||||
|
} |
||||||
|
|
||||||
|
type mockConstructorTestingTNewMockSocialConnector interface { |
||||||
|
mock.TestingT |
||||||
|
Cleanup(func()) |
||||||
|
} |
||||||
|
|
||||||
|
// NewMockSocialConnector creates a new instance of MockSocialConnector. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
|
||||||
|
func NewMockSocialConnector(t mockConstructorTestingTNewMockSocialConnector) *MockSocialConnector { |
||||||
|
mock := &MockSocialConnector{} |
||||||
|
mock.Mock.Test(t) |
||||||
|
|
||||||
|
t.Cleanup(func() { mock.AssertExpectations(t) }) |
||||||
|
|
||||||
|
return mock |
||||||
|
} |
||||||
@ -0,0 +1,33 @@ |
|||||||
|
package socialtest |
||||||
|
|
||||||
|
import ( |
||||||
|
"net/http" |
||||||
|
|
||||||
|
"github.com/grafana/grafana/pkg/login/social" |
||||||
|
) |
||||||
|
|
||||||
|
type FakeSocialService struct { |
||||||
|
ExpectedAuthInfoProvider *social.OAuthInfo |
||||||
|
ExpectedConnector social.SocialConnector |
||||||
|
ExpectedHttpClient *http.Client |
||||||
|
} |
||||||
|
|
||||||
|
func (fss *FakeSocialService) GetOAuthProviders() map[string]bool { |
||||||
|
panic("not implemented") |
||||||
|
} |
||||||
|
|
||||||
|
func (fss *FakeSocialService) GetOAuthHttpClient(string) (*http.Client, error) { |
||||||
|
return fss.ExpectedHttpClient, nil |
||||||
|
} |
||||||
|
|
||||||
|
func (fss *FakeSocialService) GetConnector(string) (social.SocialConnector, error) { |
||||||
|
return fss.ExpectedConnector, nil |
||||||
|
} |
||||||
|
|
||||||
|
func (fss *FakeSocialService) GetOAuthInfoProvider(string) *social.OAuthInfo { |
||||||
|
return fss.ExpectedAuthInfoProvider |
||||||
|
} |
||||||
|
|
||||||
|
func (fss *FakeSocialService) GetOAuthInfoProviders() map[string]*social.OAuthInfo { |
||||||
|
panic("not implemented") |
||||||
|
} |
||||||
Loading…
Reference in new issue