mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Add function to get the namespaced id * Add function to resolve an identity through authn.Service from org and namespace id * Switch to resolve identity for re-authenticate in another org
34 lines
664 B
Go
34 lines
664 B
Go
package clients
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/services/authn"
|
|
)
|
|
|
|
var _ authn.Client = (*IdentityClient)(nil)
|
|
|
|
func ProvideIdentity(namespaceID string) *IdentityClient {
|
|
return &IdentityClient{namespaceID}
|
|
}
|
|
|
|
type IdentityClient struct {
|
|
namespaceID string
|
|
}
|
|
|
|
func (i *IdentityClient) Name() string {
|
|
return "identity"
|
|
}
|
|
|
|
// Authenticate implements authn.Client.
|
|
func (i *IdentityClient) Authenticate(ctx context.Context, r *authn.Request) (*authn.Identity, error) {
|
|
return &authn.Identity{
|
|
OrgID: r.OrgID,
|
|
ID: i.namespaceID,
|
|
ClientParams: authn.ClientParams{
|
|
FetchSyncedUser: true,
|
|
SyncPermissions: true,
|
|
},
|
|
}, nil
|
|
}
|