userservice

package
v0.1.39 Latest Latest
Warning

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

Go to latest
Published: May 9, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package userservice provides domain services for the user domain.

Index

Constants

This section is empty.

Variables

View Source
var ErrBuiltInPermissionCannotBeDeleted = errors.New("built-in permission cannot be deleted")

ErrBuiltInPermissionCannotBeDeleted is returned when attempting to delete a built-in permission.

View Source
var ErrBuiltInRoleCannotBeDeleted = errors.New("built-in role cannot be deleted")

ErrBuiltInRoleCannotBeDeleted is returned when attempting to delete a built-in role.

View Source
var (
	// ErrRoleAlreadyAssigned is returned when a role is already assigned to a user.
	ErrRoleAlreadyAssigned = errors.New("role is already assigned to user")
)

Functions

This section is empty.

Types

type PermissionService

type PermissionService struct {
	// contains filtered or unexported fields
}

PermissionService implements the PermissionUsecase interface.

func NewPermissionService

func NewPermissionService(
	permissionPersistencePort userport.PermissionPersistencePort,
	logger *slog.Logger,
) *PermissionService

NewPermissionService creates a new instance of PermissionService.

func (*PermissionService) DeletePermission

func (s *PermissionService) DeletePermission(
	ctx context.Context,
	uid uuid.UUID,
) error

DeletePermission implements userport.PermissionUsecase.

func (*PermissionService) GetPermission

func (s *PermissionService) GetPermission(
	ctx context.Context,
	uid uuid.UUID,
) (*usermodel.Permission, error)

GetPermission implements userport.PermissionUsecase.

func (*PermissionService) GetPermissionByName

func (s *PermissionService) GetPermissionByName(
	ctx context.Context,
	name string,
) (*usermodel.Permission, error)

GetPermissionByName implements userport.PermissionUsecase.

func (*PermissionService) ListPermissions

func (s *PermissionService) ListPermissions(
	ctx context.Context,
	options *model.ListOptions,
) (*model.ListResponse[*usermodel.Permission], error)

ListPermissions implements userport.PermissionUsecase.

func (*PermissionService) SavePermission

func (s *PermissionService) SavePermission(
	ctx context.Context,
	permission *usermodel.Permission,
) error

SavePermission implements userport.PermissionUsecase.

type RBACService

type RBACService struct {
	// contains filtered or unexported fields
}

RBACService implements the RBACUsecase interface.

func NewRBACService

func NewRBACService(
	rbacEnforcerPort userport.RBACEnforcerPort,
	roleBindingPersistencePort userport.RoleBindingPersistencePort,
	rolePersistencePort userport.RolePersistencePort,
	permissionPersistencePort userport.PermissionPersistencePort,
	userPersistencePort userport.UserPersistencePort,
	logger *slog.Logger,
) *RBACService

NewRBACService creates a new instance of RBACService.

func (*RBACService) CheckPermission

func (s *RBACService) CheckPermission(
	ctx context.Context,
	userID uuid.UUID,
	namespace, resource, action string,
) (bool, error)

CheckPermission implements userport.RBACUsecase.

func (*RBACService) GetEffectivePermissions

func (s *RBACService) GetEffectivePermissions(
	ctx context.Context,
	userID uuid.UUID,
) ([]*usermodel.Permission, error)

GetEffectivePermissions implements userport.RBACUsecase.

func (*RBACService) GetUserPermissions

func (s *RBACService) GetUserPermissions(
	ctx context.Context,
	userID uuid.UUID,
) ([]*usermodel.Permission, error)

GetUserPermissions implements userport.RBACUsecase. Returns the union of permissions from (a) the built-in default role, granted to every user regardless of bindings, and (b) every RoleBinding whose Subjects name this user.

func (*RBACService) SyncPolicies

func (s *RBACService) SyncPolicies(ctx context.Context) error

SyncPolicies implements userport.RBACUsecase.

type RoleBindingService

type RoleBindingService struct {
	// contains filtered or unexported fields
}

RoleBindingService implements the RoleBindingUsecase interface.

func NewRoleBindingService

func NewRoleBindingService(
	roleBindingPersistencePort userport.RoleBindingPersistencePort,
	logger *slog.Logger,
) *RoleBindingService

NewRoleBindingService creates a new instance of RoleBindingService.

func (*RoleBindingService) CreateRoleBinding

func (s *RoleBindingService) CreateRoleBinding(
	ctx context.Context,
	roleBinding *usermodel.RoleBinding,
) (*usermodel.RoleBinding, error)

CreateRoleBinding implements userport.RoleBindingUsecase.

func (*RoleBindingService) DeleteRoleBinding

func (s *RoleBindingService) DeleteRoleBinding(
	ctx context.Context,
	namespace, name string,
) error

DeleteRoleBinding implements userport.RoleBindingUsecase.

func (*RoleBindingService) GetRoleBinding

func (s *RoleBindingService) GetRoleBinding(
	ctx context.Context,
	namespace, name string,
) (*usermodel.RoleBinding, error)

GetRoleBinding implements userport.RoleBindingUsecase.

func (*RoleBindingService) ListRoleBindings

func (s *RoleBindingService) ListRoleBindings(
	ctx context.Context,
	options *model.ListOptions,
) (*model.ListResponse[*usermodel.RoleBinding], error)

ListRoleBindings implements userport.RoleBindingUsecase.

func (*RoleBindingService) UpdateRoleBinding

func (s *RoleBindingService) UpdateRoleBinding(
	ctx context.Context,
	namespace, name string,
	roleBinding *usermodel.RoleBinding,
) (*usermodel.RoleBinding, error)

UpdateRoleBinding implements userport.RoleBindingUsecase.

type RoleService

type RoleService struct {
	// contains filtered or unexported fields
}

RoleService implements the RoleUsecase interface.

func NewRoleService

func NewRoleService(
	rolePersistencePort userport.RolePersistencePort,
	logger *slog.Logger,
) *RoleService

NewRoleService creates a new instance of RoleService.

func (*RoleService) DeleteRole

func (s *RoleService) DeleteRole(
	ctx context.Context,
	uid uuid.UUID,
) error

DeleteRole implements userport.RoleUsecase.

func (*RoleService) GetRole

func (s *RoleService) GetRole(
	ctx context.Context,
	uid uuid.UUID,
) (*usermodel.Role, error)

GetRole implements userport.RoleUsecase.

func (*RoleService) GetRoleByName

func (s *RoleService) GetRoleByName(
	ctx context.Context,
	displayName string,
) (*usermodel.Role, error)

GetRoleByName implements userport.RoleUsecase.

func (*RoleService) ListRoles

func (s *RoleService) ListRoles(
	ctx context.Context,
	options *model.ListOptions,
) (*model.ListResponse[*usermodel.Role], error)

ListRoles implements userport.RoleUsecase.

func (*RoleService) SaveRole

func (s *RoleService) SaveRole(
	ctx context.Context,
	role *usermodel.Role,
) error

SaveRole implements userport.RoleUsecase.

type UserRoleService

type UserRoleService struct {
	// contains filtered or unexported fields
}

UserRoleService implements the UserRoleUsecase interface.

func NewUserRoleService

func NewUserRoleService(
	userRolePersistencePort userport.UserRolePersistencePort,
	logger *slog.Logger,
) *UserRoleService

NewUserRoleService creates a new instance of UserRoleService.

func (*UserRoleService) AssignRole

func (s *UserRoleService) AssignRole(
	ctx context.Context,
	userID, roleID, assignedBy uuid.UUID,
	namespace string,
) error

AssignRole implements userport.UserRoleUsecase.

func (*UserRoleService) GetRoleUsers

func (s *UserRoleService) GetRoleUsers(
	ctx context.Context,
	roleID uuid.UUID,
) ([]*usermodel.User, error)

GetRoleUsers implements userport.UserRoleUsecase.

func (*UserRoleService) GetUserRoles

func (s *UserRoleService) GetUserRoles(
	ctx context.Context,
	userID uuid.UUID,
) ([]*usermodel.Role, error)

GetUserRoles implements userport.UserRoleUsecase.

func (*UserRoleService) GetUserRolesInNamespace

func (s *UserRoleService) GetUserRolesInNamespace(
	ctx context.Context,
	userID uuid.UUID,
	namespace string,
) ([]*usermodel.Role, error)

GetUserRolesInNamespace implements userport.UserRoleUsecase.

func (*UserRoleService) ListUserRoles

func (s *UserRoleService) ListUserRoles(
	ctx context.Context,
	options *model.ListOptions,
) (*model.ListResponse[*usermodel.UserRole], error)

ListUserRoles implements userport.UserRoleUsecase.

func (*UserRoleService) UnassignRole

func (s *UserRoleService) UnassignRole(
	ctx context.Context,
	userID, roleID uuid.UUID,
	namespace string,
) error

UnassignRole implements userport.UserRoleUsecase.

type UserService

type UserService struct {
	// contains filtered or unexported fields
}

UserService implements the UserUsecase interface.

func NewUserService

func NewUserService(
	userPersistencePort userport.UserPersistencePort,
	logger *slog.Logger,
) *UserService

NewUserService creates a new instance of UserService.

func (*UserService) DeleteUser

func (s *UserService) DeleteUser(
	ctx context.Context,
	uid uuid.UUID,
) error

DeleteUser implements userport.UserUsecase.

func (*UserService) GetUser

func (s *UserService) GetUser(
	ctx context.Context,
	uid uuid.UUID,
) (*usermodel.User, error)

GetUser implements userport.UserUsecase.

func (*UserService) GetUserByEmail

func (s *UserService) GetUserByEmail(
	ctx context.Context,
	email string,
) (*usermodel.User, error)

GetUserByEmail implements userport.UserUsecase.

func (*UserService) ListUsers

func (s *UserService) ListUsers(
	ctx context.Context,
	options *model.ListOptions,
) (*model.ListResponse[*usermodel.User], error)

ListUsers implements userport.UserUsecase.

func (*UserService) SaveUser

func (s *UserService) SaveUser(
	ctx context.Context,
	user *usermodel.User,
) error

SaveUser implements userport.UserUsecase.

Jump to

Keyboard shortcuts

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