> ## Documentation Index
> Fetch the complete documentation index at: https://help.propops.app/llms.txt
> Use this file to discover all available pages before exploring further.

# User Management

> Create user accounts, assign staff roles, configure granular permissions, and use admin impersonation to troubleshoot access issues.

This guide covers creating and managing user accounts, setting up roles and permissions, and using the impersonation feature for support.

***

## Account types

PropOps has five account types, each with different access levels:

| Account type   | What they can do                                                                    |
| -------------- | ----------------------------------------------------------------------------------- |
| **Staff**      | Full access subject to role permissions — create jobs, manage branches, run reports |
| **Agent**      | Manage jobs within their assigned branch                                            |
| **Contractor** | View and update jobs assigned to them                                               |
| **Tenant**     | View jobs linked to their record                                                    |
| **Landlord**   | Read-only view of jobs in their portfolio                                           |

***

## Creating a user account

<Steps>
  <Step title="Open the user form">
    Go to **Admin → Users** and select **Add User**.
  </Step>

  <Step title="Enter their details">
    Fill in the user's full name, email address, and phone number. Select the appropriate **account type**.
  </Step>

  <Step title="Assign a branch">
    For agents and staff, select the branch they belong to. Contractors, tenants, and landlords are linked to jobs rather than branches.
  </Step>

  <Step title="Set their role">
    Select a role to define what permissions the user has. Roles are configured under **Admin → Settings → Roles**.
  </Step>

  <Step title="Save and send the invitation">
    Save the account. PropOps sends an onboarding email with an activation link. The user must verify their email address before they can log in.
  </Step>
</Steps>

***

## Managing roles and permissions

Roles group permissions together so you don't have to set them individually for each user.

### Viewing available permissions

Go to **Admin → Settings → Roles** to see the available roles and their permissions. Permissions fall into four categories:

* **API permissions** (`api.*`) — control access to specific API endpoints.
* **Page permissions** (`page.*`) — control which pages and sections are visible.
* **Notification permissions** (`notifications.*`) — control which notifications a role receives.
* **Document permissions** (`documents.*`) — control access to document management features.

### Creating a custom role

1. Go to **Admin → Settings → Roles**.
2. Select **Add Role**.
3. Name the role (e.g. "Branch Manager", "Finance Team").
4. Toggle the permissions this role should have.
5. Save the role.

### Exporting and importing permissions

You can export the full permission configuration for all roles and account types as a JSON file. This is useful for:

* **Backups** — snapshot your permission setup before making bulk changes.
* **Environment transfer** — copy permission settings from staging to production.
* **Auditing** — review the complete permission state offline.

<Steps>
  <Step title="Export permissions">
    Go to **Admin → Settings → Permissions** and select **Export** in the toolbar. A JSON file downloads containing every permission toggle for all roles and account types.
  </Step>

  <Step title="Import permissions">
    Select **Import** in the toolbar and choose a previously exported JSON file. A confirmation dialog shows a summary of the file contents (who exported it, when, and how many permissions are included).
  </Step>

  <Step title="Confirm and apply">
    Select **Import** in the dialog to apply. The page reloads with the updated permission state.
  </Step>
</Steps>

<Warning>
  Importing overwrites existing permission values. Always export a backup first. Roles or account types that exist in the file but not in the database are skipped automatically.
</Warning>

### Assigning a role to a user

Open the user's profile under **Admin → Users**, select the new role, and save.

***

## Email verification

New users receive an activation email when their account is created. They must:

1. Open the email and select the activation link.
2. Set their password.
3. Log in for the first time.

If a user doesn't receive the email, you can resend it from their profile under **Admin → Users → Resend Activation Email**.

***

## Admin impersonation (view-as)

Staff with the appropriate permissions can view PropOps as a specific user — useful for debugging issues or providing support.

<Steps>
  <Step title="Open the user's profile">
    Go to **Admin → Users** and find the user you want to impersonate.
  </Step>

  <Step title="Select View As">
    Select **View As** from the user's actions menu. PropOps switches to their view — you see exactly what they see.
  </Step>

  <Step title="Return to your account">
    A banner at the top of the page shows you are in impersonation mode. Select **End Impersonation** to return to your own account.
  </Step>
</Steps>

<Warning>
  Impersonation is logged in the activity audit trail. All actions taken during impersonation are recorded against your admin account, not the impersonated user.
</Warning>

***

## Disabling and removing accounts

* **Disable** — deactivates the account without deleting it. The user cannot log in but their data and history are preserved.
* **Blacklist** — blocks the user and triggers a security notification. Use this for compromised accounts or policy violations.

To disable or blacklist a user, open their profile under **Admin → Users** and select the appropriate action.
