Versions in this module Expand all Collapse all v1 v1.0.2 Jul 4, 2018 Changes in this version + var DisableAssignExistingUsers = false + var ErrInvalidAlgorithm = errors.New("invalid algorithm") + var ErrInvalidToken = errors.New("invalid token") + var ErrNoAuthorizationInMetadata = errors.New("no authorization-data in metadata") + var ErrNoMetadataInContext = errors.New("no metadata in context") + var ErrNotAuthorized = errors.New("not authorized") + type Claims struct + Username string + type Flag int + const Create + const Delete + const List + const Read + const Update + const UpdateProfile + type JWTValidator struct + func NewJWTValidator(db sqlx.Ext, algorithm, secret string) *JWTValidator + func (v JWTValidator) GetIsAdmin(ctx context.Context) (bool, error) + func (v JWTValidator) GetUsername(ctx context.Context) (string, error) + func (v JWTValidator) Validate(ctx context.Context, funcs ...ValidatorFunc) error + type Validator interface + GetIsAdmin func(context.Context) (bool, error) + GetUsername func(context.Context) (string, error) + Validate func(context.Context, ...ValidatorFunc) error + type ValidatorFunc func(sqlx.Queryer, *Claims) (bool, error) + func ValidateActiveUser() ValidatorFunc + func ValidateApplicationAccess(applicationID int64, flag Flag) ValidatorFunc + func ValidateApplicationUserAccess(applicationID, userID int64, flag Flag) ValidatorFunc + func ValidateApplicationUsersAccess(applicationID int64, flag Flag) ValidatorFunc + func ValidateApplicationsAccess(flag Flag, organizationID int64) ValidatorFunc + func ValidateDeviceProfileAccess(flag Flag, id string) ValidatorFunc + func ValidateDeviceProfilesAccess(flag Flag, organizationID, applicationID int64) ValidatorFunc + func ValidateDeviceQueueAccess(devEUI lorawan.EUI64, flag Flag) ValidatorFunc + func ValidateGatewayAccess(flag Flag, mac lorawan.EUI64) ValidatorFunc + func ValidateGatewayProfileAccess(flag Flag) ValidatorFunc + func ValidateGatewaysAccess(flag Flag, organizationID int64) ValidatorFunc + func ValidateIsApplicationAdmin(applicationID int64) ValidatorFunc + func ValidateIsOrganizationAdmin(organizationID int64) ValidatorFunc + func ValidateNetworkServerAccess(flag Flag, id int64) ValidatorFunc + func ValidateNetworkServersAccess(flag Flag, organizationID int64) ValidatorFunc + func ValidateNodeAccess(devEUI lorawan.EUI64, flag Flag) ValidatorFunc + func ValidateNodesAccess(applicationID int64, flag Flag) ValidatorFunc + func ValidateOrganizationAccess(flag Flag, id int64) ValidatorFunc + func ValidateOrganizationNetworkServerAccess(flag Flag, organizationID, networkServerID int64) ValidatorFunc + func ValidateOrganizationUserAccess(flag Flag, organizationID, userID int64) ValidatorFunc + func ValidateOrganizationUsersAccess(flag Flag, id int64) ValidatorFunc + func ValidateOrganizationsAccess(flag Flag) ValidatorFunc + func ValidateServiceProfileAccess(flag Flag, id string) ValidatorFunc + func ValidateServiceProfilesAccess(flag Flag, organizationID int64) ValidatorFunc + func ValidateUserAccess(userID int64, flag Flag) ValidatorFunc + func ValidateUsersAccess(flag Flag) ValidatorFunc