identitymapper

package
v0.0.0-...-4d083f9 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2017 License: Apache-2.0 Imports: 15 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

func NewIdentityUserMapper(identities identityregistry.Registry, users userregistry.Registry, 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 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 NoopGroupMapper

type NoopGroupMapper struct{}

func (NoopGroupMapper) GroupsFor

func (n NoopGroupMapper) GroupsFor(username string) ([]*userapi.Group, error)

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 apirequest.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 apirequest.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 apirequest.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 apirequest.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 userregistry.Registry, initializer user.Initializer) UserForNewIdentityGetter

func NewStrategyClaim

func NewStrategyClaim(user userregistry.Registry, initializer user.Initializer) UserForNewIdentityGetter

func NewStrategyGenerate

func NewStrategyGenerate(user userregistry.Registry, initializer user.Initializer) UserForNewIdentityGetter

type UserNameGenerator

type UserNameGenerator func(base string, sequence int) string

UserNameGenerator returns a username

type UserToGroupMapper

type UserToGroupMapper interface {
	GroupsFor(username string) ([]*userapi.Group, error)
}

Jump to

Keyboard shortcuts

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