Documentation
¶
Overview ¶
Package userservice provides domain services for the user domain.
Index ¶
- Variables
- type PermissionService
- func (s *PermissionService) DeletePermission(ctx context.Context, uid uuid.UUID) error
- func (s *PermissionService) GetPermission(ctx context.Context, uid uuid.UUID) (*usermodel.Permission, error)
- func (s *PermissionService) GetPermissionByName(ctx context.Context, name string) (*usermodel.Permission, error)
- func (s *PermissionService) ListPermissions(ctx context.Context, options *model.ListOptions) (*model.ListResponse[*usermodel.Permission], error)
- func (s *PermissionService) SavePermission(ctx context.Context, permission *usermodel.Permission) error
- type RBACService
- func (s *RBACService) CheckPermission(ctx context.Context, userID uuid.UUID, namespace, resource, action string) (bool, error)
- func (s *RBACService) GetEffectivePermissions(ctx context.Context, userID uuid.UUID) ([]*usermodel.Permission, error)
- func (s *RBACService) GetUserPermissions(ctx context.Context, userID uuid.UUID) ([]*usermodel.Permission, error)
- func (s *RBACService) SyncPolicies(ctx context.Context) error
- type RoleBindingService
- func (s *RoleBindingService) CreateRoleBinding(ctx context.Context, roleBinding *usermodel.RoleBinding) (*usermodel.RoleBinding, error)
- func (s *RoleBindingService) DeleteRoleBinding(ctx context.Context, namespace, name string) error
- func (s *RoleBindingService) GetRoleBinding(ctx context.Context, namespace, name string) (*usermodel.RoleBinding, error)
- func (s *RoleBindingService) ListRoleBindings(ctx context.Context, options *model.ListOptions) (*model.ListResponse[*usermodel.RoleBinding], error)
- func (s *RoleBindingService) UpdateRoleBinding(ctx context.Context, namespace, name string, ...) (*usermodel.RoleBinding, error)
- type RoleService
- func (s *RoleService) DeleteRole(ctx context.Context, uid uuid.UUID) error
- func (s *RoleService) GetRole(ctx context.Context, uid uuid.UUID) (*usermodel.Role, error)
- func (s *RoleService) GetRoleByName(ctx context.Context, displayName string) (*usermodel.Role, error)
- func (s *RoleService) ListRoles(ctx context.Context, options *model.ListOptions) (*model.ListResponse[*usermodel.Role], error)
- func (s *RoleService) SaveRole(ctx context.Context, role *usermodel.Role) error
- type UserRoleService
- func (s *UserRoleService) AssignRole(ctx context.Context, userID, roleID, assignedBy uuid.UUID, namespace string) error
- func (s *UserRoleService) GetRoleUsers(ctx context.Context, roleID uuid.UUID) ([]*usermodel.User, error)
- func (s *UserRoleService) GetUserRoles(ctx context.Context, userID uuid.UUID) ([]*usermodel.Role, error)
- func (s *UserRoleService) GetUserRolesInNamespace(ctx context.Context, userID uuid.UUID, namespace string) ([]*usermodel.Role, error)
- func (s *UserRoleService) ListUserRoles(ctx context.Context, options *model.ListOptions) (*model.ListResponse[*usermodel.UserRole], error)
- func (s *UserRoleService) UnassignRole(ctx context.Context, userID, roleID uuid.UUID, namespace string) error
- type UserService
- func (s *UserService) DeleteUser(ctx context.Context, uid uuid.UUID) error
- func (s *UserService) GetUser(ctx context.Context, uid uuid.UUID) (*usermodel.User, error)
- func (s *UserService) GetUserByEmail(ctx context.Context, email string) (*usermodel.User, error)
- func (s *UserService) ListUsers(ctx context.Context, options *model.ListOptions) (*model.ListResponse[*usermodel.User], error)
- func (s *UserService) SaveUser(ctx context.Context, user *usermodel.User) error
Constants ¶
This section is empty.
Variables ¶
var ErrBuiltInPermissionCannotBeDeleted = errors.New("built-in permission cannot be deleted")
ErrBuiltInPermissionCannotBeDeleted is returned when attempting to delete a built-in permission.
var ErrBuiltInRoleCannotBeDeleted = errors.New("built-in role cannot be deleted")
ErrBuiltInRoleCannotBeDeleted is returned when attempting to delete a built-in role.
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 ¶
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 ¶
DeleteRole implements userport.RoleUsecase.
func (*RoleService) GetRole ¶
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 ¶
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 ¶
DeleteUser implements userport.UserUsecase.
func (*UserService) GetUser ¶
GetUser implements userport.UserUsecase.
func (*UserService) GetUserByEmail ¶
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 ¶
SaveUser implements userport.UserUsecase.