managementuser

package
v0.0.0-...-857d9f9 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	COLLECTION_NAME_MANAGEMENT_USERS      = "management_users"
	COLLECTION_NAME_PERMISSIONS           = "permissions"
	COLLECTION_NAME_SESSIONS              = "management_user_sessions"
	COLLECTION_NAME_SERVICE_USERS         = "service_users"
	COLLECTION_NAME_SERVICE_USER_API_KEYS = "service_user_api_keys"
)

collection names

View Source
const (
	REMOVE_SESSIONS_AFTER = 60 * 60 * 24 * 2 // 2 days
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ManagementUser

type ManagementUser struct {
	ID          primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
	Sub         string             `json:"sub,omitempty" bson:"sub,omitempty"`
	Email       string             `json:"email,omitempty" bson:"email,omitempty"`
	Username    string             `json:"username,omitempty" bson:"username,omitempty"`
	ImageURL    string             `json:"imageUrl,omitempty" bson:"imageUrl,omitempty"`
	IsAdmin     bool               `json:"isAdmin,omitempty" bson:"isAdmin,omitempty"`
	LastLoginAt time.Time          `json:"lastLoginAt,omitempty" bson:"lastLoginAt,omitempty"`
	CreatedAt   time.Time          `json:"createdAt,omitempty" bson:"createdAt,omitempty"`
}

type ManagementUserDBService

type ManagementUserDBService struct {
	DBClient *mongo.Client

	DBNamePrefix string
	InstanceIDs  []string
	// contains filtered or unexported fields
}

func NewManagementUserDBService

func NewManagementUserDBService(configs db.DBConfig) (*ManagementUserDBService, error)

func (*ManagementUserDBService) CreatePermission

func (dbService *ManagementUserDBService) CreatePermission(
	instanceID string,
	subjectID string,
	subjectType string,
	resourceType string,
	resourceKey string,
	action string,
	limiter []map[string]string,
) (*Permission, error)

Create permission

func (*ManagementUserDBService) CreateServiceUser

func (dbService *ManagementUserDBService) CreateServiceUser(instanceID string, label string, description string) (*ServiceUser, error)

CreateServiceUser creates a new service user

func (*ManagementUserDBService) CreateServiceUserAPIKey

func (dbService *ManagementUserDBService) CreateServiceUserAPIKey(instanceID string, serviceUserID string, apiKey string, expiresAt *time.Time) error

func (*ManagementUserDBService) CreateSession

func (dbService *ManagementUserDBService) CreateSession(
	instanceID string,
	userID string,
	renewToken string,
) (*Session, error)

Session represents a user session, created when a user logs in

func (*ManagementUserDBService) CreateUser

func (dbService *ManagementUserDBService) CreateUser(
	instanceID string,
	newUser *ManagementUser,
) (*ManagementUser, error)

func (*ManagementUserDBService) DeletePermission

func (dbService *ManagementUserDBService) DeletePermission(
	instanceID string,
	permissionID string,
) error

Delete permission

func (*ManagementUserDBService) DeletePermissionsBySubject

func (dbService *ManagementUserDBService) DeletePermissionsBySubject(
	instanceID string,
	subjectID string,
	subjectType string,
) error

Delete permissions by subject id and type

func (*ManagementUserDBService) DeleteServiceUser

func (dbService *ManagementUserDBService) DeleteServiceUser(instanceID string, id string) error

DeleteServiceUser deletes a service user by its ID and all its API keys

func (*ManagementUserDBService) DeleteServiceUserAPIKey

func (dbService *ManagementUserDBService) DeleteServiceUserAPIKey(instanceID string, id string) error

func (*ManagementUserDBService) DeleteSession

func (dbService *ManagementUserDBService) DeleteSession(
	instanceID string,
	sessionID string,
) error

DeleteSession deletes the session with the given ID

func (*ManagementUserDBService) DeleteSessionsByUserID

func (dbService *ManagementUserDBService) DeleteSessionsByUserID(
	instanceID string,
	userID string,
) error

DeleteSessionsByUserID deletes all sessions for the given user

func (*ManagementUserDBService) DeleteUser

func (dbService *ManagementUserDBService) DeleteUser(
	instanceID string,
	id string,
) error

delete user

func (*ManagementUserDBService) GetAllUsers

func (dbService *ManagementUserDBService) GetAllUsers(
	instanceID string,
	returnFullObject bool,
) ([]*ManagementUser, error)

get all management users

func (*ManagementUserDBService) GetPermissionByID

func (dbService *ManagementUserDBService) GetPermissionByID(
	instanceID string,
	permissionID string,
) (*Permission, error)

Find permission by id

func (*ManagementUserDBService) GetPermissionByResource

func (dbService *ManagementUserDBService) GetPermissionByResource(
	instanceID string,
	resourceType string,
	resourceKey string,
) ([]*Permission, error)

Find permissions by resource type and key

func (*ManagementUserDBService) GetPermissionBySubject

func (dbService *ManagementUserDBService) GetPermissionBySubject(
	instanceID string,
	subjectID string,
	subjectType string,
) ([]*Permission, error)

Find permissions by subject id and type

func (*ManagementUserDBService) GetPermissionBySubjectAndResourceForAction

func (dbService *ManagementUserDBService) GetPermissionBySubjectAndResourceForAction(
	instanceID string,
	subjectID string,
	subjectType string,
	resourceType string,
	resourceKey []string,
	action string,
) ([]*Permission, error)

Find permissions by subject id and type and resource type

func (*ManagementUserDBService) GetServiceUserAPIKey

func (dbService *ManagementUserDBService) GetServiceUserAPIKey(instanceID string, apiKey string) (*ServiceUserAPIKey, error)

func (*ManagementUserDBService) GetServiceUserAPIKeys

func (dbService *ManagementUserDBService) GetServiceUserAPIKeys(instanceID string, serviceUserID string) ([]ServiceUserAPIKey, error)

func (*ManagementUserDBService) GetServiceUserByID

func (dbService *ManagementUserDBService) GetServiceUserByID(instanceID string, id string) (*ServiceUser, error)

GetServiceUserByID returns a service user by its ID

func (*ManagementUserDBService) GetServiceUsers

func (dbService *ManagementUserDBService) GetServiceUsers(instanceID string) ([]ServiceUser, error)

GetServiceUsers returns all service users

func (*ManagementUserDBService) GetSession

func (dbService *ManagementUserDBService) GetSession(
	instanceID string,
	sessionID string,
) (*Session, error)

GetSession returns the session with the given ID

func (*ManagementUserDBService) GetUserByID

func (dbService *ManagementUserDBService) GetUserByID(
	instanceID string,
	id string,
) (*ManagementUser, error)

find user by id

func (*ManagementUserDBService) GetUserBySub

func (dbService *ManagementUserDBService) GetUserBySub(
	instanceID string,
	sub string,
) (*ManagementUser, error)

find user by sub

func (*ManagementUserDBService) GetUsersByIDs

func (dbService *ManagementUserDBService) GetUsersByIDs(
	instanceID string,
	ids []string,
	returnFullObject bool,
) ([]*ManagementUser, error)

Get users by ids

func (*ManagementUserDBService) UpdatePermissionLimiter

func (dbService *ManagementUserDBService) UpdatePermissionLimiter(
	instanceID string,
	permissionID string,
	limiter []map[string]string,
) error

Modify limiter of permission

func (*ManagementUserDBService) UpdateServiceUser

func (dbService *ManagementUserDBService) UpdateServiceUser(instanceID string, id string, label string, description string) error

UpdateServiceUser updates a service user by its ID

func (*ManagementUserDBService) UpdateServiceUserAPIKeyLastUsedAt

func (dbService *ManagementUserDBService) UpdateServiceUserAPIKeyLastUsedAt(instanceID string, apiKey string) error

func (*ManagementUserDBService) UpdateUser

func (dbService *ManagementUserDBService) UpdateUser(
	instanceID string,
	id string,
	email string,
	username string,
	isAdmin bool,
	lastLogin time.Time,
	imageURL string,
) error

update user

type Permission

type Permission struct {
	ID           primitive.ObjectID  `json:"id,omitempty" bson:"_id,omitempty"`
	SubjectID    string              `json:"subjectId,omitempty" bson:"subjectId,omitempty"`
	SubjectType  string              `json:"subjectType,omitempty" bson:"subjectType,omitempty"`
	ResourceType string              `json:"resourceType,omitempty" bson:"resourceType,omitempty"`
	ResourceKey  string              `json:"resourceKey,omitempty" bson:"resourceKey,omitempty"`
	Action       string              `json:"action,omitempty" bson:"action,omitempty"`
	Limiter      []map[string]string `json:"limiter,omitempty" bson:"limiter,omitempty"`
}

type ServiceUser

type ServiceUser struct {
	ID          primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
	Label       string             `json:"label,omitempty" bson:"label,omitempty"`
	Description string             `json:"description,omitempty" bson:"description,omitempty"`
	CreatedAt   time.Time          `json:"createdAt,omitempty" bson:"createdAt,omitempty"`
}

type ServiceUserAPIKey

type ServiceUserAPIKey struct {
	ID            primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
	ServiceUserID string             `json:"serviceUserId,omitempty" bson:"serviceUserId,omitempty"`
	Key           string             `json:"key,omitempty" bson:"key,omitempty"`
	ExpiresAt     *time.Time         `json:"expiresAt,omitempty" bson:"expiresAt,omitempty"`
	CreatedAt     time.Time          `json:"createdAt,omitempty" bson:"createdAt,omitempty"`
	LastUsedAt    time.Time          `json:"lastUsedAt,omitempty" bson:"lastUsedAt,omitempty"`
}

type Session

type Session struct {
	ID         primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
	UserID     string             `json:"userId,omitempty" bson:"userId,omitempty"`
	RenewToken string             `json:"renewToken,omitempty" bson:"renewToken,omitempty"`
	CreatedAt  time.Time          `json:"createdAt,omitempty" bson:"createdAt,omitempty"`
}

Jump to

Keyboard shortcuts

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