managementuser

package
v0.0.0-...-08cdbde Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2026 License: Apache-2.0 Imports: 10 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_NAME_APP_ROLES             = "app_roles"
	COLLECTION_NAME_APP_ROLE_TEMPLATES    = "app_role_templates"
)

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 AppRole

type AppRole 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"`
	AppName     string             `json:"appName,omitempty" bson:"appName,omitempty"`
	Role        string             `json:"role,omitempty" bson:"role,omitempty"`
	CreatedAt   time.Time          `json:"createdAt,omitempty" bson:"createdAt,omitempty"`
}

type AppRoleTemplate

type AppRoleTemplate struct {
	ID                  primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
	AppName             string             `json:"appName,omitempty" bson:"appName,omitempty"`
	Role                string             `json:"role,omitempty" bson:"role,omitempty"`
	RequiredPermissions []Permission       `json:"requiredPermissions,omitempty" bson:"requiredPermissions,omitempty"`
	CreatedAt           time.Time          `json:"createdAt,omitempty" bson:"createdAt,omitempty"`
	UpdatedAt           time.Time          `json:"updatedAt,omitempty" bson:"updatedAt,omitempty"`
}

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"`
	Provider    string             `json:"provider,omitempty" bson:"provider,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) AddAppRoleForSubject

func (dbService *ManagementUserDBService) AddAppRoleForSubject(
	instanceID string,
	subjectID string,
	subjectType string,
	appName string,
	role string,
) error

Add a new app role for a user

func (*ManagementUserDBService) AddAppRoleTemplate

func (dbService *ManagementUserDBService) AddAppRoleTemplate(
	instanceID string,
	appName string,
	role string,
	requiredPermissions []Permission,
) error

Add a new app role template

func (*ManagementUserDBService) CreateDefaultIndexes

func (dbService *ManagementUserDBService) CreateDefaultIndexes()

func (*ManagementUserDBService) CreateDefaultIndexesForAppRoleTemplatesCollection

func (dbService *ManagementUserDBService) CreateDefaultIndexesForAppRoleTemplatesCollection(instanceID string)

func (*ManagementUserDBService) CreateDefaultIndexesForAppRolesCollection

func (dbService *ManagementUserDBService) CreateDefaultIndexesForAppRolesCollection(instanceID string)

func (*ManagementUserDBService) CreateDefaultIndexesForManagementUsersCollection

func (dbService *ManagementUserDBService) CreateDefaultIndexesForManagementUsersCollection(instanceID string)

func (*ManagementUserDBService) CreateDefaultIndexesForPermissionsCollection

func (dbService *ManagementUserDBService) CreateDefaultIndexesForPermissionsCollection(instanceID string)

func (*ManagementUserDBService) CreateDefaultIndexesForServiceUserAPIKeysCollection

func (dbService *ManagementUserDBService) CreateDefaultIndexesForServiceUserAPIKeysCollection(instanceID string)

func (*ManagementUserDBService) CreateDefaultIndexesForSessionsCollection

func (dbService *ManagementUserDBService) CreateDefaultIndexesForSessionsCollection(instanceID string)

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) DeleteAppRole

func (dbService *ManagementUserDBService) DeleteAppRole(
	instanceID string,
	appRoleID string,
) error

Remove an app role

func (*ManagementUserDBService) DeleteAppRoleTemplate

func (dbService *ManagementUserDBService) DeleteAppRoleTemplate(
	instanceID string,
	appRoleTemplateID string,
) error

Delete a app role template

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) DropIndexForAppRoleTemplatesCollection

func (dbService *ManagementUserDBService) DropIndexForAppRoleTemplatesCollection(instanceID string, dropAll bool)

func (*ManagementUserDBService) DropIndexForAppRolesCollection

func (dbService *ManagementUserDBService) DropIndexForAppRolesCollection(instanceID string, dropAll bool)

func (*ManagementUserDBService) DropIndexForManagementUsersCollection

func (dbService *ManagementUserDBService) DropIndexForManagementUsersCollection(instanceID string, dropAll bool)

func (*ManagementUserDBService) DropIndexForPermissionsCollection

func (dbService *ManagementUserDBService) DropIndexForPermissionsCollection(instanceID string, dropAll bool)

func (*ManagementUserDBService) DropIndexForServiceUserAPIKeysCollection

func (dbService *ManagementUserDBService) DropIndexForServiceUserAPIKeysCollection(instanceID string, dropAll bool)

func (*ManagementUserDBService) DropIndexForSessionsCollection

func (dbService *ManagementUserDBService) DropIndexForSessionsCollection(instanceID string, dropAll bool)

func (*ManagementUserDBService) DropIndexes

func (dbService *ManagementUserDBService) DropIndexes(dropAll bool)

func (*ManagementUserDBService) GetAllAppRoleTemplates

func (dbService *ManagementUserDBService) GetAllAppRoleTemplates(
	instanceID string,
) ([]AppRoleTemplate, error)

Get all app role templates

func (*ManagementUserDBService) GetAllAppRoles

func (dbService *ManagementUserDBService) GetAllAppRoles(
	instanceID string,
) ([]AppRole, error)

Get all app roles

func (*ManagementUserDBService) GetAllUsers

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

get all management users

func (*ManagementUserDBService) GetAppRoleTemplateByID

func (dbService *ManagementUserDBService) GetAppRoleTemplateByID(
	instanceID string,
	appRoleTemplateID string,
) (AppRoleTemplate, error)

Get a app role template by id

func (*ManagementUserDBService) GetAppRolesForSubject

func (dbService *ManagementUserDBService) GetAppRolesForSubject(
	instanceID string,
	subjectID string,
) ([]AppRole, error)

Get app roles for a user

func (*ManagementUserDBService) GetIndexes

func (dbService *ManagementUserDBService) GetIndexes() (map[string]map[string][]bson.M, error)

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) RemoveAllAppRoleTemplatesForApp

func (dbService *ManagementUserDBService) RemoveAllAppRoleTemplatesForApp(
	instanceID string,
	appName string,
) error

Remove all app role templates for an app

func (*ManagementUserDBService) RemoveAllAppRolesForApp

func (dbService *ManagementUserDBService) RemoveAllAppRolesForApp(
	instanceID string,
	appName string,
) error

Remove all app roles for an app

func (*ManagementUserDBService) RemoveAllAppRolesForAppTemplate

func (dbService *ManagementUserDBService) RemoveAllAppRolesForAppTemplate(
	instanceID string,
	appName string,
	role string,
) error

Remove all app roles for an app template (by appName and role)

func (*ManagementUserDBService) RemoveAllAppRolesForSubject

func (dbService *ManagementUserDBService) RemoveAllAppRolesForSubject(
	instanceID string,
	subjectID string,
) error

Remove all app roles for a user

func (*ManagementUserDBService) UpdateAppRoleTemplate

func (dbService *ManagementUserDBService) UpdateAppRoleTemplate(
	instanceID string,
	appRoleTemplateID string,
	appName string,
	role string,
	requiredPermissions []Permission,
) error

Update a app role template

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,
	provider 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