1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
unleash.unleash/src/lib/openapi/spec/admin-count-schema.ts
Nuno Góis c0bcc50b28
fix: add confirmation to disable password login (#3829)
https://linear.app/unleash/issue/2-1071/prevent-users-from-disabling-password-authentication-when-there-are-no

Improves the behavior of disabling password based login by adding some
relevant information and a confirmation dialog with a warning. This felt
better than trying to disable the toggle, by still allowing the end
users to make the decision, except now it should be a properly informed
decision with confirmation.


![image](https://github.com/Unleash/unleash/assets/14320932/2ca754d8-cfa2-4fda-984d-0c34b89750f3)

- **Password based administrators**: Admin accounts that have a password
set;
- **Other administrators**: Other admin users that do not have a
password. May be SSO, but may also be users that did not set a password
yet;
- **Admin service accounts**: Service accounts that have the admin root
role. Depending on how you're using the SA this may not necessarily mean
locking yourself out of an admin account, especially if you secured its
token beforehand;
- **Admin API tokens**: Similar to the above. If you secured an admin
API token beforehand, you still have access to all features through the
API;

Each one of them link to the respective page inside Unleash (e.g. users
page, service accounts page, tokens page...);

If you try to disable and press "save", and only in that scenario, you
are presented with the following confirmation dialog:


![image](https://github.com/Unleash/unleash/assets/14320932/5ad6d105-ad47-4d31-a1df-04737aed4e00)
2023-05-23 15:56:34 +01:00

29 lines
968 B
TypeScript

import { FromSchema } from 'json-schema-to-ts';
export const adminCountSchema = {
$id: '#/components/schemas/adminCountSchema',
type: 'object',
additionalProperties: false,
description: 'Contains total admin counts for an Unleash instance.',
required: ['password', 'noPassword', 'service'],
properties: {
password: {
type: 'number',
description: 'Total number of admins that have a password set.',
},
noPassword: {
type: 'number',
description:
'Total number of admins that do not have a password set. May be SSO, but may also be users that did not set a password yet.',
},
service: {
type: 'number',
description:
'Total number of service accounts that have the admin root role.',
},
},
components: {},
} as const;
export type AdminCountSchema = FromSchema<typeof adminCountSchema>;