Versions in this module Expand all Collapse all v0 v0.2.0 Feb 28, 2026 v0.1.3 Feb 27, 2026 v0.1.2 Feb 24, 2026 v0.1.1 Feb 24, 2026 v0.1.0 Feb 24, 2026 Changes in this version + var ErrInvitationBadStatus = errors.New("invitation status is invalid") + var ErrInvitationExpired = errors.New("invitation has expired") + var ErrInvitationInvalid = errors.New("invitation token is invalid") + var ErrInvitationNotFound = errors.New("invitation not found") + var ErrInvitationRevoked = errors.New("invitation has been revoked") + var ErrInvitationUsed = errors.New("invitation already used") + var ErrPasswordResetBadStatus = errors.New("password reset token status is invalid") + var ErrPasswordResetExpired = errors.New("password reset token has expired") + var ErrPasswordResetInvalid = errors.New("password reset token is invalid") + var ErrPasswordResetNotFound = errors.New("password reset token not found") + var ErrPasswordResetRevoked = errors.New("password reset token has been revoked") + var ErrPasswordResetUsed = errors.New("password reset token already used") + var ErrSuperAdminProtected = errors.New("super admin user is protected") + var ErrUserNotFound = errors.New("user not found") + func NewUserModule(logger logging.Logger, deps *core.Dependencies) core.Module + type ActivateInvitationAPIRequest struct + ConfirmPassword string + InviteJWT string + Nickname string + Password string + type ActivateInvitationRequest struct + ConfirmPassword string + InviteJWT string + Nickname string + Password string + type ActivateInvitationResponse struct + User UserBasicDTO + type ActivatePasswordResetAPIRequest struct + ConfirmPassword string + Password string + ResetJWT string + type ActivatePasswordResetRequest struct + ConfirmPassword string + Password string + ResetJWT string + type ActivatePasswordResetResponse struct + User UserBasicDTO + type AssignRolesRequest struct + RoleIDs []string + type CreateInvitationAPIRequest struct + DomainKey string + DomainType string + Email string + RoleIDs []string + Username string + type CreateInvitationRequest struct + CreatedBy uuid.UUID + DomainKey string + DomainType string + Email string + RoleIDs []string + Username string + type CreateInvitationResponse struct + Email string + ExpiresAt time.Time + ID uuid.UUID + InviteJWT string + Username string + type CreatePasswordResetRequest struct + CreatedBy uuid.UUID + UserID uuid.UUID + type CreatePasswordResetResponse struct + Email string + ExpiresAt time.Time + ID uuid.UUID + ResetJWT string + type FreezeUserRequest struct + Status string + type InvitationItem struct + DomainKey string + DomainType string + Email string + ExpiresAt time.Time + ID uuid.UUID + RoleIDs []string + Status string + UsedAt *time.Time + Username string + type InvitationService struct + func NewInvitationService(client *ent.Client, logger logging.Logger, jwtService *jwt.JWTService, ...) *InvitationService + func (s *InvitationService) ActivateInvitation(ctx context.Context, req ActivateInvitationRequest) (*ActivateInvitationResponse, error) + func (s *InvitationService) CreateInvitation(ctx context.Context, req CreateInvitationRequest) (*CreateInvitationResponse, error) + func (s *InvitationService) GetInvitation(ctx context.Context, id uuid.UUID) (*InvitationItem, error) + func (s *InvitationService) ListInvitations(ctx context.Context, filters ListInvitationFilters) (*ListInvitationResult, error) + func (s *InvitationService) RevokeInvitation(ctx context.Context, id uuid.UUID) error + func (s *InvitationService) ValidateInvitation(ctx context.Context, req ValidateInvitationRequest) (*ValidateInvitationResponse, error) + func (s *InvitationService) WithRBACManager(rbacManager *rbac.RBACManager) *InvitationService + type ListInvitationFilters struct + DomainKey string + DomainType string + Page int + PageSize int + Status string + type ListInvitationResult struct + Items []InvitationItem + Page int + PageSize int + Total int + TotalPages int + type PasswordResetService struct + func NewPasswordResetService(client *ent.Client, logger logging.Logger, jwtService *jwt.JWTService) *PasswordResetService + func (s *PasswordResetService) ActivatePasswordReset(ctx context.Context, req ActivatePasswordResetRequest) (*ActivatePasswordResetResponse, error) + func (s *PasswordResetService) CreatePasswordReset(ctx context.Context, req CreatePasswordResetRequest) (*CreatePasswordResetResponse, error) + func (s *PasswordResetService) ValidatePasswordReset(ctx context.Context, req ValidatePasswordResetRequest) (*ValidatePasswordResetResponse, error) + type RestoreUserRequest struct + type RoleDTO struct + Description string + ID uuid.UUID + Name string + Permissions []string + type UpdateProfileRequest struct + Avatar string + Email string + Nickname string + Phone string + type UpdateSettingsRequest struct + Settings map[string]any + type UserBasicDTO struct + Email string + ID uuid.UUID + Status string + Username string + type UserHandler struct + func NewUserHandler(userService *UserService, invitationService *InvitationService, ...) *UserHandler + func (h *UserHandler) ActivateInvitation(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) ActivatePasswordReset(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) AssignRoles(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) CreateInvitation(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) CreatePasswordReset(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) DeleteUser(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) FreezeUser(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) GetInvitation(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) GetProfile(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) ListInvitations(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) ListUsers(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) RestoreUser(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) RevokeInvitation(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) UpdateProfile(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) UpdateSettings(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) ValidateInvitation(w http.ResponseWriter, r *http.Request) + func (h *UserHandler) ValidatePasswordReset(w http.ResponseWriter, r *http.Request) + type UserListFilters struct + IncludeDeleted bool + Page int + PageSize int + Query string + RoleID uuid.UUID + Status string + type UserListResult struct + Page int + PageSize int + Total int + TotalPages int + Users []*UserProfileDTO + type UserModule struct + func (m *UserModule) Name() string + func (m *UserModule) RegisterPrivateRoutes(r chi.Router) + func (m *UserModule) RegisterPublicRoutes(r chi.Router) + type UserProfileDTO struct + Avatar string + Email string + ID uuid.UUID + IsSuperAdmin bool + Nickname string + Phone string + Roles []RoleDTO + Settings map[string]any + Status string + Username string + type UserService struct + func NewUserService(client *ent.Client, logger logging.Logger) *UserService + func (s *UserService) AssignRoles(ctx context.Context, userID uuid.UUID, roleIDs []uuid.UUID) error + func (s *UserService) DeleteUser(ctx context.Context, userID uuid.UUID) error + func (s *UserService) FreezeUser(ctx context.Context, userID uuid.UUID) error + func (s *UserService) GetProfile(ctx context.Context, userID uuid.UUID) (*UserProfileDTO, error) + func (s *UserService) GetUserByID(ctx context.Context, userID uuid.UUID) (*ent.User, error) + func (s *UserService) ListUsers(ctx context.Context, filters UserListFilters) (*UserListResult, error) + func (s *UserService) RestoreUser(ctx context.Context, userID uuid.UUID) error + func (s *UserService) UnfreezeUser(ctx context.Context, userID uuid.UUID) error + func (s *UserService) UpdateProfile(ctx context.Context, userID uuid.UUID, req UpdateProfileRequest) (*UserProfileDTO, error) + func (s *UserService) UpdateSettings(ctx context.Context, userID uuid.UUID, settings map[string]any) error + func (s *UserService) WithRBACManager(rbacManager *rbac.RBACManager) *UserService + type ValidateInvitationRequest struct + InviteJWT string + type ValidateInvitationResponse struct + DomainKey string + DomainType string + Email string + ExpiresAt time.Time + RoleIDs []string + Username string + Valid bool + type ValidatePasswordResetRequest struct + ResetJWT string + type ValidatePasswordResetResponse struct + Email string + ExpiresAt time.Time + UserID uuid.UUID + Valid bool