Related: Frontend Architecture · Frontend State
Allows the currently logged-in user to view and manage their own profile — display name, photo, email address, and password. Not tied to any specific space.
/features/me [authenticated — no own guard; covered by the parent `features` route's `authGuard` (app-routing.ts)]
src/app/features/me/
me.component.ts/html/scss ← profile page
me-dialog/ ← edit display name + photo URL
me-email-dialog/ ← update email address
me-password-dialog/ ← change password
Displays the current user's profile card — avatar, name, email, email-verified status, role, and (for custom role) the permission list. Reads all data from UserStore.
Injected services: HlmDialogService, NotificationService, MeService, UserStore
Key behaviour:
openEditDialog()— opensMeDialogComponentto update display name and profile photo URLopenUpdateEmailDialog()— opensMeEmailDialogComponent(only available for email/password provider)openUpdatePasswordDialog()— opensMePasswordDialogComponent(only available for email/password provider)
Visibility rules (me.component.html):
- Locked account (
isLocked()) — all action buttons are hidden and a "your account is locked" message is shown instead - Google / Microsoft provider — only "Update Profile" is shown; a message explains email and password are managed by the external provider
Form: displayName, photoURL (plain URL text field — no upload).
Form: newEmail only. Calls MeService.updateEmail() (Firebase Auth updateEmail), then reloads the current user.
Form: newPassword only (min length 6). Calls MeService.updatePassword() (Firebase Auth updatePassword).
There is no current-password field, confirm field, or explicit re-authentication step, and no verification email is sent. Firebase Auth may reject these calls with
auth/requires-recent-loginif the session is old.
| Service | Purpose |
|---|---|
MeService |
Update display name, email, password via Firebase Auth |
NotificationService |
Toast feedback |
UserStore |
Read current user state (email, providers, displayName) |