Architecture: Session 124: How to implement user registration with user ty...
Documentation for Sessions
ποΈ Architecture: Session 124: How to implement user registration with user ty...
Date: 2026-02-19
Time: 18:07:55 UTC
Session: gspace1-124.2
Agent: angular
Confidence: 92%
Status: β
Documented
π Decision Context
Question:
Session 124: How to implement user registration with user types, returnUrl, guest conversion, and embedded auth panel
Task: Not specified
π― Decision Made
Chosen:
Dual-layer approach: extended UserHierarchyType (added platform_admin), RegisterDto with optional userType validated by @IsIn, hierarchy entry created on register, frontend RegisterComponent with user type selector + returnUrl + guestUserId via UserContextService signal, new AuthPanelComponent + AuthPanelService for embedded modal auth
Options Considered:
- No alternatives documented
π Reasoning
Kept space_builder naming for backward compat (user's choice). Used existing UserHierarchy system rather than adding userType to User schema (avoids data duplication). Self-service registration restricted to space_builder/platform_admin/platform_user (developer/admin internal-only for security). Used UserContextService.userId() signal for synchronous guest detection (GuestAuthService methods are all async/Promise-based). AuthPanelService wraps existing ModalService from @libs-ux/ux-utils-lib. ReturnUrl preserved across loginβregister navigation via query params.
π Files Involved
libs/libs-api/backend-core/src/lib/schemas/user-hierarchy.schema.tslibs/libs-api/api-contracts/src/lib/auth/auth.dto.tsapis/backend-api/src/app/backend-auth/backend-auth.service.tslibs/libs-ui/auth-ui/src/lib/models/auth.types.tslibs/libs-ui/auth-ui/src/lib/components/register/register.component.tslibs/libs-ui/auth-ui/src/lib/components/register/register.component.htmllibs/libs-ui/auth-ui/src/lib/components/register/register.component.scsslibs/libs-ui/auth-ui/src/lib/services/auth.service.tslibs/libs-ui/auth-ui/src/lib/components/auth-panel/auth-panel.component.tslibs/libs-ui/auth-ui/src/lib/services/auth-panel.service.tsapps/gograb-space/src/app/auth/pages/register.page.tsapps/gograb-space/src/app/auth/pages/login.page.ts
π Related
- Decision ID:
dev_1771524475121_6ji2u2d - Session: 124
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation