managementuser

package
v0.0.0-...-1cf31ce Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 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 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) 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) 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) 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) 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 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