Skip to main content

User Management Procedures

This guide provides step-by-step instructions for managing users in the BT Management system. These actions are typically performed by Super Admins via the Internal Admin Dashboard or API.

1. Creating New Users

While users can self-register via the public endpoint (POST /users), admins can manually create users via the API or Dashboard.

Via API

Endpoint: POST /users Payload:

{
"email": "gabay@shul.com",
"name": "Gabay Cohen",
"password": "temporary-password-123",
"role": "User"
}

2. Managing User Roles

Roles determine the permission set for a user. The default role for new sign-ups is User.

Assigning a Role

To change a user's role (e.g., promoting to Manager):

Endpoint: PATCH /users/:id/assign-role Payload:

{
"role": "Admin" // or "Manager", "User"
}

The system verifies the requester has MANAGE_USERS permission.

3. Account Security & Maintenance

Resetting Passwords

If a user forgets their password and cannot use the self-service flow:

Endpoint: PATCH /users/:id/reset-password Payload:

{
"newPassword": "new-secure-password"
}

Note: The system logs this action in the Audit Log for security tracking.

Deactivating a User

To temporarily ban or deactivate a user without deleting their data:

Endpoint: PATCH /users/:id/toggle-status

  • Toggles the isActive flag.
  • Inactive users strictly cannot log in (LocalAuthGuard checks this).
  • Existing sessions (JWTs) remain valid until expiry unless blacklisted (future feature).

4. Deleting Users

Deleting a user is a destructive action.

Endpoint: DELETE /users/:id

  • Removes the user record.
  • Cascading Deletes: Depending on the Prisma schema onDelete: Cascade settings, this may delete associated tenant data.
  • Recommendation: Prefer deactivating (toggle-status) over deleting unless strictly necessary (e.g. GDPR request).