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

# SOP: Disabling an OD Admin Account

> How to stop an Operator Dashboard admin account being able to sign in, by setting its password to a value that can never match.

## Overview

There is no button in the Operator Dashboard for disabling an admin account. It is done by editing the account's record in the database directly, setting the stored password to the literal value `DISABLED`.

The account survives, its history stays intact, and nobody can log into it.

Use this when someone leaves.

***

## Prerequisites

* Access to the Windows workstation. See [How You Connect](/software/developer/operations/index#how-you-connect)
* Studio 3T on that workstation
* The email address of the account to disable

> [!WARNING]
>
> This edits production data directly. There is no confirmation step, no undo, and nothing is written to the application's audit history. Check the email address before you run the update, and make sure you are in `GklPlatform_PROD` and not another database.

***

## Procedure

**1. Connect to the Windows workstation**

Start the workstation, open the port forwarding session and connect with Remote Desktop. See [Connecting To The Windows Workstation](/software/developer/operations/index#connecting-to-the-windows-workstation).

**2. Open the Admins collection**

Open Studio 3T, connect to the Mongo instance, open the `GklPlatform_PROD` database and then the `Admins` collection.

**3. Find the account**

Confirm the account exists and that you have the right person before changing anything.

```js theme={null}
db.Admins.find({ Email: "person@example.com" })
```

Email addresses are stored and compared in lower case, so search in lower case.

**4. Disable it**

```js theme={null}
db.Admins.updateOne(
  { Email: "person@example.com" },
  { $set: { Password: "DISABLED" } }
)
```

Check the result reports `matchedCount: 1` and `modifiedCount: 1`. If it matched nothing, the email is wrong or in the wrong case.

**5. Verify**

Attempt to sign in to the Operator Dashboard as that account and confirm it is rejected.

**6. Stop the workstation**

Close the port forwarding session and stop the EC2 instance, which is expensive to leave running.

***

## What This Does Not Do

> [!WARNING]
>
> Disabling the account does not end a session that is already signed in. Sign in issues a token that is valid for **one day** and is not re-checked against the account record, so someone already logged in keeps working until their token expires. If the account is compromised rather than simply retired, treat that day as live exposure and escalate accordingly.

It also does not delete the account, remove it from the admin list, or reassign anything that references it. Comment resolutions and history recorded against that admin stay as they are, which is the point: the record is preserved and only sign in is blocked.

***

## Re-enabling An Account

The disabled account cannot recover itself.

To restore access, set `Password` back to a known base64 encoded value using the same approach (e.g. their email b64 encoded), set ForcePasswordReset to `true`, then have the person sign in and change it.

***

## Related Documentation

| Page | Relevance |
| - | - |
| [Operator Dashboard](/software/developer/estate/systems/gkl/gkl-od) | What the dashboard is and who uses it |
| [Infrastructure BAU](/software/developer/operations/index) | Connecting to the Windows workstation |
| [Operational Dashboard](/software/internal/od-general) | The user facing guide, including how admin access is requested |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.