identitymapper

package
v4.1.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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 IsClaimError(err error) bool

func IsLookupError

func IsLookupError(err error) bool

func NewClaimError

func NewClaimError(user *userapi.User, identity *userapi.Identity) error

func NewIdentityUserMapper

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

func (*StrategyAdd) UserForNewIdentity

func (s *StrategyAdd) UserForNewIdentity(ctx context.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error)

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

func (*StrategyClaim) UserForNewIdentity

func (s *StrategyClaim) UserForNewIdentity(ctx context.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error)

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

func (*StrategyGenerate) UserForNewIdentity

func (s *StrategyGenerate) UserForNewIdentity(ctx context.Context, preferredUserName string, identity *userapi.Identity) (*userapi.User, error)

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

type UserNameGenerator func(base string, sequence int) string

UserNameGenerator returns a username

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL