# PersonUserController

**Kind:** Controller

**Source:** `Pams/API/Pams.API/Controllers/Security/PersonUserController.cs` (line 22)

**Part of:** [Pams](subsystem-pams)

## Where it refuses work

- `PersonUserController` stops the work with an early return when `!ModelState.IsValid`, in 3 places.
- `PersonUserController` stops the work with an early return when `string.IsNullOrEmpty(model.MachineName)`, in 2 places.
- `PersonUserController` stops the work with an early return when `!isDeleted`, in 2 places.
- `PersonUserController` stops the work with an early return when `!PU.HasObject`.
- `PersonUserController` stops the work with an early return when `!PU.Delete()`.
- `PersonUserController` stops the work with an early return when `model.UserDetails == null || model.UserDetails.Count == 0`.

## When something fails

- `PersonUserController` handles failure in 8 places: it turns it into a return value in all 8.

## Relationships

- MODULE_DECLARES → `GetUserRoles`
- MODULE_DECLARES → `RemoveMainUser`
- MODULE_DECLARES → `Delete`
- MODULE_DECLARES → `GetUserPermissionsMatrix`
- MODULE_DECLARES → `GetTwoFactorAuthentication`
- MODULE_DECLARES → `SetTwoFactorAuthentication`
- MODULE_DECLARES → `UnTrustUserMachine`
- MODULE_DECLARES → `DeleteUnTrustedMachine`
- MODULE_DECLARES → `GetUsedMachinesByUser`
- MODULE_DECLARES → `GetUsedmachinesByBranchUsers`
- MODULE_DECLARES → `GetloggedInMachinesCountByUser`
- IMPORTS → `BaseController`
- IMPORTS → `Proc_UrserRoles`
- IMPORTS → `Proc_UserRole`
- IMPORTS → `Proc_UserRoleBindingModel`
- IMPORTS → `RoleUser`
- IMPORTS → `RoleUserBindingModel`
- IMPORTS → `Person`
- IMPORTS → `Employee`
- IMPORTS → `Save`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `Delete`
- IMPORTS → `PersonUser`
- IMPORTS → `GetUserPermissionsMatrixBindingModel`
- IMPORTS → `PersonUserBindingModel`

## Used by

4 references from 4 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### calls by (4)

- `EnahnceLoginResponse` — `Frontend/src/app/services/security/auth.service.ts`:1
- `AppSettings` — `Frontend/src/app/settings/app/app.settings.ts`:241
- `AppSettings` — `Pams/Web/Pams.Web/Client/app/settings/app/app.settings.ts`:126
- `AppSettings` — `Pams/Web/Pams.WebApp/Client/app/settings/app/app.settings.ts`:6
