Documentation
¶
Index ¶
- Constants
- Variables
- type ApiClientGetter
- type App
- type Config
- type LoginOptions
- type UserAdm
- func (u *UserAdm) CreateTenant(ctx context.Context, tenant model.NewTenant) error
- func (ua *UserAdm) CreateUser(ctx context.Context, u *model.User) error
- func (ua *UserAdm) CreateUserInternal(ctx context.Context, u *model.UserInternal) error
- func (ua *UserAdm) DeleteToken(ctx context.Context, id string) error
- func (ua *UserAdm) DeleteTokens(ctx context.Context, tenantId, userId string) error
- func (ua *UserAdm) DeleteUser(ctx context.Context, id string) error
- func (ua *UserAdm) GetPersonalAccessTokens(ctx context.Context, userID string) ([]model.PersonalAccessToken, error)
- func (ua *UserAdm) GetPlanBinding(ctx context.Context) (*model.PlanBindingDetails, error)
- func (ua *UserAdm) GetPlans(ctx context.Context, skip, limit int) []model.Plan
- func (ua *UserAdm) GetUser(ctx context.Context, id string) (*model.User, error)
- func (ua *UserAdm) GetUsers(ctx context.Context, fltr model.UserFilter) ([]model.User, error)
- func (u *UserAdm) HealthCheck(ctx context.Context) error
- func (u *UserAdm) IssuePersonalAccessToken(ctx context.Context, tr *model.TokenRequest) (string, error)
- func (u *UserAdm) Login(ctx context.Context, email model.Email, pass string, options *LoginOptions) (*jwt.Token, error)
- func (u *UserAdm) Logout(ctx context.Context, token *jwt.Token) error
- func (ua *UserAdm) SetPassword(ctx context.Context, uu model.UserUpdate) error
- func (u *UserAdm) SignToken(ctx context.Context, t *jwt.Token) (string, error)
- func (ua *UserAdm) UpdateUser(ctx context.Context, id string, userUpdate *model.UserUpdate) error
- func (ua *UserAdm) Verify(ctx context.Context, token *jwt.Token) error
- func (u *UserAdm) WithTenantVerification(c tenant.ClientRunner) *UserAdm
Constants ¶
View Source
const (
TenantStatusSuspended = "suspended"
)
Variables ¶
View Source
var ( ErrUserNotFound = store.ErrUserNotFound ErrDuplicateEmail = store.ErrDuplicateEmail ErrETagMismatch = errors.New("entity tag did not match any records") ErrAuthExpired = errors.New("token expired") ErrAuthInvalid = errors.New("token is invalid") ErrTenantAccountSuspended = errors.New("tenant account suspended") ErrInvalidTenantID = errors.New("invalid tenant id") ErrTooManyTokens = errors.New( "maximum number of personal acess tokens reached for this user") ErrDuplicateTokenName = errors.New( "Personal Access Token with a given name already exists") // password mismatch ErrCurrentPasswordMismatch = errors.New("current password mismatch") // modification of other user's password is not allowed ErrCannotModifyPassword = errors.New("password cannot be modified") )
Functions ¶
This section is empty.
Types ¶
type ApiClientGetter ¶
type ApiClientGetter func() apiclient.HttpRunner
type App ¶
type App interface { HealthCheck(ctx context.Context) error // Login accepts email/password, returns JWT Login(ctx context.Context, email model.Email, pass string, options *LoginOptions) (*jwt.Token, error) Logout(ctx context.Context, token *jwt.Token) error CreateUser(ctx context.Context, u *model.User) error CreateUserInternal(ctx context.Context, u *model.UserInternal) error UpdateUser(ctx context.Context, id string, u *model.UserUpdate) error Verify(ctx context.Context, token *jwt.Token) error GetUsers(ctx context.Context, fltr model.UserFilter) ([]model.User, error) GetUser(ctx context.Context, id string) (*model.User, error) DeleteUser(ctx context.Context, id string) error SetPassword(ctx context.Context, u model.UserUpdate) error // SignToken generates a signed // token using configuration & method set up in UserAdmApp SignToken(ctx context.Context, t *jwt.Token) (string, error) DeleteToken(ctx context.Context, id string) error // IssuePersonalAccessToken issues Personal Access Token IssuePersonalAccessToken(ctx context.Context, tr *model.TokenRequest) (string, error) // GetPersonalAccessTokens returns list of Personal Access Tokens GetPersonalAccessTokens(ctx context.Context, userID string) ([]model.PersonalAccessToken, error) DeleteTokens(ctx context.Context, tenantId, userId string) error CreateTenant(ctx context.Context, tenant model.NewTenant) error GetPlans(ctx context.Context, skip, limit int) []model.Plan GetPlanBinding(ctx context.Context) (*model.PlanBindingDetails, error) }
type Config ¶
type Config struct { // token issuer Issuer string // token expiration time ExpirationTimeSeconds int64 // maximum number of log in tokens per user // zero means no limit LimitSessionsPerUser int // maximum number of personal access tokens per user // zero means no limit LimitTokensPerUser int // how often we should update personal access token // with last used timestamp TokenLastUsedUpdateFreqMinutes int // path to the private key, used to generate kid header in JWT and to get all the keys PrivateKeyPath string // PrivateKeyFileNamePattern holds the regular expression used // to get the key id from a filename PrivateKeyFileNamePattern string }
type LoginOptions ¶
type LoginOptions struct {
NoExpiry bool `json:"no_expiry,omitempty"`
}
type UserAdm ¶
type UserAdm struct {
// contains filtered or unexported fields
}
func NewUserAdm ¶
func (*UserAdm) CreateTenant ¶
func (*UserAdm) CreateUser ¶
func (*UserAdm) CreateUserInternal ¶
func (*UserAdm) DeleteTokens ¶
func (*UserAdm) GetPersonalAccessTokens ¶
func (*UserAdm) GetPlanBinding ¶
func (*UserAdm) IssuePersonalAccessToken ¶
func (*UserAdm) SetPassword ¶
func (*UserAdm) UpdateUser ¶
func (*UserAdm) WithTenantVerification ¶
func (u *UserAdm) WithTenantVerification(c tenant.ClientRunner) *UserAdm
WithTenantVerification produces a UserAdm instance which enforces tenant verification vs the tenantadm service upon /login.
Click to show internal directories.
Click to hide internal directories.