Documentation
¶
Index ¶
- Variables
- func GenerateSessionTokenIdentifier() (string, error)
- type Controller
- func (c *Controller) Create(ctx context.Context, session *auth.Session, in *CreateInput) (*types.User, error)
- func (c *Controller) CreateAccessToken(ctx context.Context, session *auth.Session, userUID string, ...) (*types.TokenResponse, error)
- func (c *Controller) CreateNoAuth(ctx context.Context, in *CreateInput, admin bool) (*types.User, error)
- func (c *Controller) CreatePublicKey(ctx context.Context, session *auth.Session, userUID string, ...) (*types.PublicKey, error)
- func (c *Controller) Delete(ctx context.Context, session *auth.Session, userUID string) error
- func (c *Controller) DeletePublicKey(ctx context.Context, session *auth.Session, userUID string, identifier string) error
- func (c *Controller) DeleteToken(ctx context.Context, session *auth.Session, userUID string, ...) error
- func (c *Controller) Find(ctx context.Context, session *auth.Session, userUID string) (*types.User, error)
- func (c *Controller) FindEmail(ctx context.Context, session *auth.Session, email string) (*types.User, error)
- func (c *Controller) FindNoAuth(ctx context.Context, userUID string) (*types.User, error)
- func (c *Controller) List(ctx context.Context, session *auth.Session, filter *types.UserFilter) ([]*types.User, int64, error)
- func (c *Controller) ListPublicKeys(ctx context.Context, session *auth.Session, userUID string, ...) ([]types.PublicKey, int, error)
- func (c *Controller) ListTokens(ctx context.Context, session *auth.Session, userUID string, ...) ([]*types.Token, error)
- func (c *Controller) Login(ctx context.Context, in *LoginInput) (*types.TokenResponse, error)
- func (c *Controller) Logout(ctx context.Context, session *auth.Session) error
- func (c *Controller) MembershipSpaces(ctx context.Context, session *auth.Session, userUID string, ...) ([]types.MembershipSpace, int64, error)
- func (c *Controller) Register(ctx context.Context, sysCtrl *system.Controller, in *RegisterInput) (*types.TokenResponse, error)
- func (c *Controller) Search(ctx context.Context, session *auth.Session, userUID string) (*types.User, error)
- func (c *Controller) SearchSpace(ctx context.Context, session *auth.Session, userUID string) (*types.User, error)
- func (c *Controller) Update(ctx context.Context, session *auth.Session, userUID string, in *UpdateInput) (*types.User, error)
- func (c *Controller) UpdateAdmin(ctx context.Context, session *auth.Session, userUID string, ...) (*types.User, error)
- func (c *Controller) UpdateBlocked(ctx context.Context, session *auth.Session, userUID string, ...) (*types.User, error)
- type CreateInput
- type CreatePublicKeyInput
- type CreateTokenInput
- type LoginInput
- type RegisterInput
- type UpdateAdminInput
- type UpdateBlockedInput
- type UpdateInput
Constants ¶
This section is empty.
Variables ¶
var WireSet = wire.NewSet( ProvideController, )
WireSet provides a wire set for this package.
Functions ¶
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func NewController ¶
func NewController( tx dbtx.Transactor, principalUIDCheck check.PrincipalUID, authorizer authz.Authorizer, principalStore store.PrincipalStore, tokenStore store.TokenStore, membershipStore store.MembershipStore, publicKeyStore store.PublicKeyStore, ) *Controller
func ProvideController ¶
func ProvideController( tx dbtx.Transactor, principalUIDCheck check.PrincipalUID, authorizer authz.Authorizer, principalStore store.PrincipalStore, tokenStore store.TokenStore, membershipStore store.MembershipStore, publicKeyStore store.PublicKeyStore, ) *Controller
func (*Controller) Create ¶
func (c *Controller) Create(ctx context.Context, session *auth.Session, in *CreateInput) (*types.User, error)
Create creates a new user.
func (*Controller) CreateAccessToken ¶
func (c *Controller) CreateAccessToken( ctx context.Context, session *auth.Session, userUID string, in *CreateTokenInput, ) (*types.TokenResponse, error)
* CreateToken creates a new user access token.
func (*Controller) CreateNoAuth ¶
func (c *Controller) CreateNoAuth(ctx context.Context, in *CreateInput, admin bool) (*types.User, error)
* CreateNoAuth creates a new user without auth checks. * WARNING: Never call as part of user flow. * * Note: take admin separately to avoid potential vulnerabilities for user calls.
func (*Controller) CreatePublicKey ¶
func (c *Controller) CreatePublicKey( ctx context.Context, session *auth.Session, userUID string, in *CreatePublicKeyInput, ) (*types.PublicKey, error)
func (*Controller) DeletePublicKey ¶
func (*Controller) DeleteToken ¶
func (c *Controller) DeleteToken( ctx context.Context, session *auth.Session, userUID string, tokenType enum.TokenType, tokenIdentifier string) error
* DeleteToken deletes a token of a user.
func (*Controller) Find ¶
func (c *Controller) Find(ctx context.Context, session *auth.Session, userUID string) (*types.User, error)
* Find tries to find the provided user.
func (*Controller) FindEmail ¶
func (c *Controller) FindEmail(ctx context.Context, session *auth.Session, email string) (*types.User, error)
* FindEmail tries to find the provided user using email.
func (*Controller) FindNoAuth ¶
* FindNoAuth finds a user without auth checks. * WARNING: Never call as part of user flow.
func (*Controller) List ¶
func (c *Controller) List(ctx context.Context, session *auth.Session, filter *types.UserFilter) ([]*types.User, int64, error)
* List lists all users of the system.
func (*Controller) ListPublicKeys ¶
func (*Controller) ListTokens ¶
func (c *Controller) ListTokens(ctx context.Context, session *auth.Session, userUID string, tokenType enum.TokenType) ([]*types.Token, error)
* ListTokens lists all tokens of a user.
func (*Controller) Login ¶
func (c *Controller) Login( ctx context.Context, in *LoginInput, ) (*types.TokenResponse, error)
* Login attempts to login as a specific user - returns the session token if successful.
func (*Controller) Logout ¶
Logout searches for the user's token present in the request and proceeds to delete it. If no user was present, a usererror.ErrUnauthorized is returned.
func (*Controller) MembershipSpaces ¶
func (c *Controller) MembershipSpaces(ctx context.Context, session *auth.Session, userUID string, filter types.MembershipSpaceFilter, ) ([]types.MembershipSpace, int64, error)
MembershipSpaces lists all spaces in which the user is a member.
func (*Controller) Register ¶
func (c *Controller) Register(ctx context.Context, sysCtrl *system.Controller, in *RegisterInput) (*types.TokenResponse, error)
Register creates a new user and returns a new session token on success. This doesn't require auth, but has limited functionalities (unable to create admin user for example).
func (*Controller) SearchSpace ¶
func (*Controller) Update ¶
func (c *Controller) Update(ctx context.Context, session *auth.Session, userUID string, in *UpdateInput) (*types.User, error)
Update updates the provided user.
func (*Controller) UpdateAdmin ¶
func (c *Controller) UpdateAdmin(ctx context.Context, session *auth.Session, userUID string, request *UpdateAdminInput) (*types.User, error)
UpdateAdmin updates the admin state of a user.
func (*Controller) UpdateBlocked ¶
func (c *Controller) UpdateBlocked(ctx context.Context, session *auth.Session, userUID string, request *UpdateBlockedInput) (*types.User, error)
UpdateBlocked updates the blocked state of a user.
type CreateInput ¶
type CreateInput struct { UID string `json:"uid"` Email string `json:"email"` DisplayName string `json:"display_name"` Password string `json:"password,omitempty"` PasswordHash string `json:"password_hash,omitempty"` Source string `json:"source,omitempty"` }
CreateInput is the input used for create operations. On purpose don't expose admin, has to be enabled explicitly.
type CreatePublicKeyInput ¶
type CreatePublicKeyInput struct { Identifier string `json:"identifier"` Usage enum.PublicKeyUsage `json:"usage"` Content string `json:"content"` }
type CreateTokenInput ¶
type LoginInput ¶
type RegisterInput ¶
type UpdateAdminInput ¶
type UpdateAdminInput struct {
Admin bool `json:"admin"`
}
type UpdateBlockedInput ¶
type UpdateBlockedInput struct {
Blocked bool `json:"blocked"`
}