User Management

This page describes the administrator capabilities for managing accounts in FT Configs UI: creating, editing, suspending, deleting users, and related operations.

Prerequisites

All actions on this page are available only to users with the ADMIN role. Users with the VIEWER and EDITOR roles cannot access the user management section.

To open user management, select Settings > Users in the sidebar.

Roles and Permissions

FT Configs UI uses three roles for access control:

Role Permissions

VIEWER

Read-only. Cannot edit, import, export, or delete configurations.

EDITOR

Create, edit, import, and export configurations. No access to user management or the audit log.

ADMIN

All EDITOR capabilities, plus user management, the audit log, and system settings.

Assign the VIEWER role to users who only need to view data. Use the EDITOR role for operators and ADMIN for system administrators only.

Permissions Tooltip

Hovering over a role badge in the users table shows a tooltip with the full permission matrix for that role.

The matrix includes the following items:

Permission VIEWER EDITOR ADMIN

View configurations

Edit configurations

Import / Export

User management

Audit log

System settings

The tooltip helps you quickly assess which capabilities a user has without opening their details.

Users Table

The user management page shows a paginated table of all accounts.

Table Columns

Column Description

Username

Unique login identifier. The record ID is shown below the name.

Email

The user’s email address.

Role

The assigned role: VIEWER, EDITOR, or ADMIN. Hovering shows a permissions tooltip.

Status

Active or suspended (color-coded badge).

Password change

Whether a password change is required at the next sign-in.

Last login

The last sign-in time in relative format (for example, "2 hours ago"). Hovering shows the exact date.

Actions

The "…​" button with a dropdown menu (see Row Actions).

By default, 20 users are shown per page. The username column can be sorted by clicking its header.

Search and Filtering

Controls above the table let you narrow the list:

  • Text search — filters by username and email. Results update as you type (with a 400 ms debounce).

  • Role filter — a dropdown to show users of a specific role only.

  • Status filter — show all, only active, or only suspended users.

Filters combine. For example, you can enter a username while also selecting the EDITOR role and the "Active" status.

To clear all filters, click the Reset link that appears when filters are active.

Refresh Row

A status row below the table shows the exact time of the last data refresh, for example: "List is up to date. 10:10:20". While loading, the refresh icon spins.

Row Actions

Each table row has a "…​" button (three dots) that opens a dropdown menu of actions:

Action Description

Edit

Opens the user view and edit dialog (see User View and Edit Dialog).

Enable / Disable

Instantly toggles the account status. No confirmation is required. An optimistic approach is used: the status updates immediately in the table and automatically rolls back to the previous value on error.

Delete

Opens the user view dialog where deletion can be initiated (see Deleting a User).

The "Enable / Disable" action runs without confirmation. The status changes instantly. If an error occurs, the interface automatically restores the previous value.

Creating a User

To create a new user:

  1. Click the Add user button.

  2. Fill in the required fields:

    Field Rules

    Username

    Required. At least 1 character.

    Email

    Required. Must end with @friendly-tech.com. Maximum 100 characters.

    Role

    Required. Choose one of the available roles: VIEWER, EDITOR, or ADMIN. The role description is shown below the selection.

    Language

    The default interface language: English (en) or Russian (ru).

    Active

    Toggle. Determines whether the account is active immediately.

  3. Click Create.

After creation, the system generates a temporary password. The new user must change it at first sign-in. How the password is delivered depends on the server configuration:

Mode Behavior

Online (email delivery configured)

The temporary password is emailed to the user. It is not shown to the administrator — only a delivery confirmation is displayed.

Offline (mail server unavailable)

No email is sent. The temporary password is returned in the response and shown to the administrator once in a separate dialog with a Copy button. Share it with the user through a secure channel.

The passwordChangeRequired flag is set automatically for all new accounts.
In offline mode the temporary password is shown only once and is not stored anywhere. If the dialog is closed without copying it, a password reset is required (see Resetting a Password).
The "Add user" dialog is for creation only. To edit an existing user, use the view dialog (see User View and Edit Dialog).

User View and Edit Dialog

The dialog opens when you click a user row in the table or select Edit in the row actions menu.

Unlike the previous tabbed version, the dialog is now a single vertical flow with several sections.

Dialog Structure

The dialog consists of the following sections (top to bottom):

1. Header

The dialog header shows the username, email, and a badge with the current status (active / suspended).

2. Profile Form

A form with fields for editing the user’s core data:

Field Description

Username

Editable text field.

Email

Editable field with @friendly-tech.com domain validation.

Role

A dropdown of available roles. The role description is shown below the selection.

Active

A toggle to enable/disable the account, with an explanation.

A change to the user’s role takes effect immediately. If you downgrade an ADMIN to EDITOR, the user loses access to user management and the audit log on the next page load.

3. Password Indicator

Below the profile form is an informational block showing the password status:

  • If a password change is not required — a green shield icon and corresponding text.

  • If a password change is required — a yellow warning icon and text about the required change.

4. Active Sessions (collapsible section)

The "Active sessions" section is collapsed by default. A badge next to the heading shows the number of active sessions.

When expanded, it shows the user’s session list, each entry containing:

  • The session identifier (first 8 characters).

  • Revocation status (a "Revoked" badge, where applicable).

  • Creation date and expiration date.

Session data is loaded automatically when the dialog opens.

5. Danger Zone

At the bottom of the dialog, separated by a horizontal line, is a section with critical actions:

Action Description

Reset password

Generates a new temporary password. Sets the mandatory password-change flag. Confirmation is requested before running.

Terminate all sessions

Revokes all of the user’s active sessions. The button is disabled if there are no sessions. Confirmation is requested before running.

Delete user

Starts the deletion process with OTP confirmation (see Deleting a User).

Resetting the password does not terminate the user’s current sessions. If you need to forcibly terminate all sessions, perform both actions: reset the password and terminate all sessions.

6. Save Button

The Save button is always shown in the dialog footer. It saves the changes made in the profile form (name, email, role, status). A Cancel button next to it closes the dialog without saving.

Suspending and Activating Users

Suspension prevents a user from signing in without deleting the account.

Quick Toggle from the Table

The fastest way is to use the Enable / Disable item in the row actions menu (the "…​" button):

  1. Find the user in the table.

  2. Click the "…​" button in the row.

  3. Choose Disable (for an active user) or Enable (for a suspended user).

The status changes instantly in the table. No confirmation is required.

On a server error, the status automatically rolls back to the previous value, and you see an error notification.

Toggle from the Dialog

You can also change the status with the Active toggle in the profile form inside the view dialog. In that case the change applies after clicking Save.

Use suspension instead of deletion when you need to temporarily revoke access — for example, during an investigation or while an employee is on leave.

Resetting a Password

To reset a user’s password:

  1. Open the user’s view dialog.

  2. Scroll to the Danger zone section.

  3. Click the Reset password button.

  4. Confirm the action in the confirmation dialog that appears.

After confirmation, the system generates a new temporary password. The delivery method matches the user creation logic:

  • Online (email delivery configured) — the password is emailed to the user. The dialog shows a delivery confirmation without the password itself.

  • Offline (mail server unavailable) — the password is returned in the response and shown in a separate dialog with a Copy button.

The passwordChangeRequired flag is set automatically, and the user must choose a new password at the next sign-in.
Resetting the password does not terminate the user’s current sessions. If you need to forcibly sign the user out, additionally run Terminate all sessions.

Terminating All Sessions

To forcibly terminate all of a user’s sessions:

  1. Open the user’s view dialog.

  2. Scroll to the Danger zone section.

  3. Click the Terminate all sessions button.

  4. Confirm the action in the dialog that appears.

All of the user’s active sessions are revoked. The user must sign in again.

The button is disabled if the user has no active sessions.

Deleting a User

Deleting a user irreversibly removes the account. The exact flow depends on the server configuration.

Mode Behavior

Online (email delivery configured)

For security, a one-time password (OTP) sent to the administrator’s email is required to confirm the deletion.

Offline (mail server unavailable)

OTP is disabled. Instead of entering a code, you confirm a plain "Delete user?" dialog. The account is deleted only after you confirm.

Deletion Process (online)

  1. Open the user’s view dialog.

  2. Scroll to the Danger zone section.

  3. Click the Delete user button.

  4. The system sends a one-time code to your administrator email.

  5. Enter the OTP code in the confirmation dialog that appears.

  6. Click Confirm to complete the deletion.

Deletion Process (offline)

  1. Open the user’s view dialog.

  2. Scroll to the Danger zone section.

  3. Click the Delete user button.

  4. A plain confirmation dialog appears ("Delete user?") — without an OTP field.

  5. Click Confirm delete to complete the deletion. A success notification is shown and the list refreshes.

Deleting a user is irreversible. The account and related data are removed permanently. If you only need to revoke access temporarily, use suspension.

OTP Confirmation Details (online)

  1. When deletion is initiated, the system requests generation of a one-time code.

  2. The code is delivered to your email.

  3. You must enter the code in the confirmation dialog before it expires. A countdown is shown in the dialog.

  4. If the code has expired, you can request a new one with the Resend button.

  5. If the code is entered incorrectly, an error is shown; the process can be restarted.

The two-step verification prevents accidental or unauthorized deletion of users.

Deletion-Specific Errors

Code Description

2501 / 2502 / 2503

Invalid or expired OTP code. Re-enter it or request a new code.

2504

OTP could not be sent — the administrator has no email configured.

2505

Deletion is not allowed: this is the last administrator in the system. At least one ADMIN must always remain.

About Dialog

The user avatar dropdown menu (top-right corner) has an About item. Clicking it opens a dialog with version information:

Field Description

Frontend version

The version number of the client application.

Frontend build

The build identifier (if available).

Backend version

The version number of the server application (loaded when the dialog opens).

Backend build

The build identifier of the server application.

The Copy button at the bottom of the dialog copies all version information to the clipboard — useful when contacting technical support or filing a bug report.

Use the About dialog to quickly verify that the frontend and backend are running the expected versions after an update.

User Field Reference

Field Type Description

username

String (min. 1 character)

Unique login identifier. Letters, digits, underscores, and hyphens.

email

String (max. 100 characters)

Must end with @friendly-tech.com.

role

Enum

One of: VIEWER, EDITOR, ADMIN.

locale

Enum

Preferred interface language: en or ru.

enabled

Boolean

Whether the account is active (true) or suspended (false).

passwordChangeRequired

Boolean

If true, the user must change the password at the next sign-in.

createdAt

Timestamp

The date and time the account was created.

updatedAt

Timestamp

The date and time the account was last modified.

lastLoginAt

Timestamp

The date and time of the last sign-in. May be empty if the user has not signed in yet.

Troubleshooting

Symptom: when clicking "Enable / Disable", the status flickers and reverts

Cause: the server rejected the status change request (for example, insufficient permissions or a network error). The interface uses optimistic updates and automatically rolls back the status on error.

Solution: check the error notification that appears in the bottom-right corner. Make sure you have the ADMIN role and that the server is reachable.

Symptom: the deletion OTP code does not arrive by email

Cause: the current administrator may have no email configured, or the mail server is unavailable (error code 2504).

Solution: make sure your account has a correct email address. Check the spam folder. If the problem persists, contact your system administrator to check the mail server.

On offline servers (no mail delivery), deletion does not use OTP at all — instead of entering a code you confirm a plain "Delete user?" dialog, and the account is removed only after you confirm. If you expected an OTP but saw a plain confirmation dialog, the server is running in offline mode.

Symptom: cannot delete a user — "last administrator" error

Cause: the system prevents deletion of the last user with the ADMIN role (error code 2505) to guarantee that at least one administrator remains.

Solution: create a new user with the ADMIN role or assign the ADMIN role to an existing user, then retry the deletion.

Symptom: the About dialog shows dashes instead of the backend version

Cause: version information could not be loaded from the server. The server may be unavailable or may not support the version endpoint.

Solution: make sure the backend server is running and reachable. Refresh the page and try opening the dialog again.