CloudMigration: Create authapi service (#96581)
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package fake
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/authapi"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
|
||||
var _ authapi.Service = (*AuthapiStub)(nil)
|
||||
|
||||
type AuthapiStub struct {
|
||||
// The cloud migration token created by this stub.
|
||||
Token *authapi.TokenView
|
||||
Policies map[string]authapi.AccessPolicy
|
||||
}
|
||||
|
||||
func (client *AuthapiStub) CreateAccessPolicy(_ context.Context, _ authapi.CreateAccessPolicyParams, _ authapi.CreateAccessPolicyPayload) (authapi.AccessPolicy, error) {
|
||||
randStr := fmt.Sprintf("random-policy-%s", util.GenerateShortUID())
|
||||
policy := authapi.AccessPolicy{
|
||||
ID: randStr,
|
||||
Name: randStr,
|
||||
}
|
||||
client.Policies[policy.ID] = policy
|
||||
return policy, nil
|
||||
}
|
||||
|
||||
func (client *AuthapiStub) DeleteAccessPolicy(_ context.Context, params authapi.DeleteAccessPolicyParams) (bool, error) {
|
||||
delete(client.Policies, params.AccessPolicyID)
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (client *AuthapiStub) ListAccessPolicies(_ context.Context, _ authapi.ListAccessPoliciesParams) ([]authapi.AccessPolicy, error) {
|
||||
items := make([]authapi.AccessPolicy, 0)
|
||||
for _, v := range client.Policies {
|
||||
items = append(items, v)
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
func (client *AuthapiStub) ListTokens(_ context.Context, _ authapi.ListTokenParams) ([]authapi.TokenView, error) {
|
||||
if client.Token == nil {
|
||||
return []authapi.TokenView{}, nil
|
||||
}
|
||||
|
||||
return []authapi.TokenView{*client.Token}, nil
|
||||
}
|
||||
|
||||
func (client *AuthapiStub) CreateToken(_ context.Context, _ authapi.CreateTokenParams, payload authapi.CreateTokenPayload) (authapi.Token, error) {
|
||||
token := authapi.Token{
|
||||
ID: fmt.Sprintf("random-token-%s", util.GenerateShortUID()),
|
||||
Name: payload.Name,
|
||||
AccessPolicyID: payload.AccessPolicyID,
|
||||
Token: fmt.Sprintf("completely_fake_token_%s", util.GenerateShortUID()),
|
||||
}
|
||||
client.Token = &authapi.TokenView{
|
||||
ID: token.ID,
|
||||
Name: token.Name,
|
||||
AccessPolicyID: token.AccessPolicyID,
|
||||
DisplayName: token.Name,
|
||||
}
|
||||
return token, nil
|
||||
}
|
||||
|
||||
func (client *AuthapiStub) DeleteToken(_ context.Context, _ authapi.DeleteTokenParams) error {
|
||||
client.Token = nil
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user