Skip to main content

User Profiles

Empower users to manage their own information.

Overview

The User Profile feature allows users to view and update their personal information, security settings, and preferences. It's a central hub for everything related to the user's account within LibreApps Desktop dashboard.

Key Features

  • Personal Information: Update name, email, phone number, and other custom profile fields.
  • Avatar Management: Upload and crop profile pictures.
  • Security Settings: Change passwords, enable/disable multi-factor authentication (MFA), and view active sessions.
  • Preferences: Manage notification settings, language preferences, and theme choices.
  • Account Deletion: Allow users to request account deletion in compliance with privacy regulations.

How it Works

  1. Profile Page: The user navigates to the profile page (typically /profile).
  2. Data Fetching: The frontend fetches the user's current profile data from the backend API.
  3. Editing: The user makes changes to their information using pre-built form components.
  4. Validation: The frontend and backend validate the updated data (e.g., checking for valid email format).
  5. Saving: The updated data is sent to the backend and saved to the database.
  6. Syncing: If using an external identity provider (like Keycloak), the changes are synced to that provider.

Customization

You can customize the User Profile experience by:

  • Adding Custom Fields: Extend the user model to include additional fields like job title, department, or social media links.
  • Modifying the UI: Customize the layout and styling of the profile page to match your brand.
  • Integrating with Third-party Services: Connect the profile page to other services, such as a CRM or marketing automation platform.

Best Practices

  • Do this: Provide clear and helpful error messages for all validation failures.
  • Do this: Ensure that sensitive information (like passwords) is handled securely.
  • Don't do this: Ask for more information than is necessary for your application's functionality.