Documentation ¶
Index ¶
- Variables
- func IsClaimError(err error) bool
- func IsLookupError(err error) bool
- func NewClaimError(user *userapi.User, identity *userapi.Identity) error
- func NewIdentityUserMapper(identities userclient.IdentityInterface, users userclient.UserInterface, ...) (authapi.UserIdentityMapper, error)
- func NewLookupError(info authapi.UserIdentityInfo, err error) error
- type DefaultUserInitStrategy
- type Initializer
- type MappingMethodType
- type StrategyAdd
- type StrategyClaim
- type StrategyGenerate
- type UserForNewIdentityGetter
- func NewStrategyAdd(user userclient.UserInterface, initializer Initializer) UserForNewIdentityGetter
- func NewStrategyClaim(user userclient.UserInterface, initializer Initializer) UserForNewIdentityGetter
- func NewStrategyGenerate(user userclient.UserInterface, initializer Initializer) UserForNewIdentityGetter
- type UserNameGenerator
Constants ¶
This section is empty.
Variables ¶
var ( // MaxGenerateAttempts limits how many times we try to find an available username for a new identity MaxGenerateAttempts = 100 // DefaultGenerator attempts to use the base name first, then "base2", "base3", ... DefaultGenerator = UserNameGenerator(func(base string, sequence int) string { if sequence == 0 { return base } return fmt.Sprintf("%s%d", base, sequence+1) }) )
Functions ¶
func IsClaimError ¶
func IsLookupError ¶
func NewIdentityUserMapper ¶
func NewIdentityUserMapper(identities userclient.IdentityInterface, users userclient.UserInterface, userIdentityMapping userclient.UserIdentityMappingInterface, method MappingMethodType) (authapi.UserIdentityMapper, error)
NewIdentityUserMapper returns a UserIdentityMapper that does the following: 1. Returns an existing user if the identity exists and is associated with an existing user 2. Returns an error if the identity exists and is not associated with a user (or is associated with a missing user) 3. Handles new identities according to the requested method
func NewLookupError ¶
func NewLookupError(info authapi.UserIdentityInfo, err error) error
Types ¶
type DefaultUserInitStrategy ¶
type DefaultUserInitStrategy struct { }
func (*DefaultUserInitStrategy) InitializeUser ¶
func (*DefaultUserInitStrategy) InitializeUser(identity *userapi.Identity, user *userapi.User) error
InitializeUser implements Initializer
type Initializer ¶
type Initializer interface { // InitializeUser is responsible for initializing fields in a User API object from its associated Identity InitializeUser(identity *userapi.Identity, user *userapi.User) error }
Initializer is responsible for initializing fields in a User API object from its associated Identity
func NewDefaultUserInitStrategy ¶
func NewDefaultUserInitStrategy() Initializer
type MappingMethodType ¶
type MappingMethodType string
const ( // MappingMethodLookup does not provision a new identity or user, it only allows identities already associated with users MappingMethodLookup MappingMethodType = "lookup" // MappingMethodClaim associates a new identity with a user with the identity's preferred username // if no other identities are already associated with the user MappingMethodClaim MappingMethodType = "claim" // MappingMethodAdd associates a new identity with a user with the identity's preferred username, // creating the user if needed, and adding to any existing identities associated with the user MappingMethodAdd MappingMethodType = "add" // MappingMethodGenerate finds an available username for a new identity, based on its preferred username // If a user with the preferred username already exists, a unique username is generated MappingMethodGenerate MappingMethodType = "generate" )
type StrategyAdd ¶
type StrategyAdd struct {
// contains filtered or unexported fields
}
StrategyAdd associates a new identity with a user with the identity's preferred username, adding to any existing identities associated with the user
type StrategyClaim ¶
type StrategyClaim struct {
// contains filtered or unexported fields
}
StrategyClaim associates a new identity with a user with the identity's preferred username if no other identities are already associated with the user
type StrategyGenerate ¶
type StrategyGenerate struct {
// contains filtered or unexported fields
}
StrategyGenerate finds an available username for a new identity, based on its preferred username If a user with the preferred username already exists, a unique username is generated
type UserForNewIdentityGetter ¶
type UserForNewIdentityGetter interface { // UserForNewIdentity returns a persisted User object for the given Identity, creating it if needed UserForNewIdentity(ctx context.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error) }
UserForNewIdentityGetter is responsible for creating or locating the persisted User for the given Identity. The preferredUserName is available to the strategies
func NewStrategyAdd ¶
func NewStrategyAdd(user userclient.UserInterface, initializer Initializer) UserForNewIdentityGetter
func NewStrategyClaim ¶
func NewStrategyClaim(user userclient.UserInterface, initializer Initializer) UserForNewIdentityGetter
func NewStrategyGenerate ¶
func NewStrategyGenerate(user userclient.UserInterface, initializer Initializer) UserForNewIdentityGetter
type UserNameGenerator ¶
UserNameGenerator returns a username