From 4e6c361a0e6cfabb9b71bedecc7a54ccf6fe8bf0 Mon Sep 17 00:00:00 2001 From: Azri Kahar <42867097+azrikahar@users.noreply.github.com> Date: Fri, 27 May 2022 06:01:19 +0800 Subject: [PATCH] Add System token interface (#13549) * Add system token interface * use system token interface in users token field * Update placeholder * move notice below input * fix clear value interaction * update placeholder and notice text * remove unused translation key * rename class to match current naming * fix bugs in disabled state and it's UX Co-authored-by: Rijk van Zanten Co-authored-by: jaycammarano --- .../database/system-data/fields/users.yaml | 6 +- .../interfaces/_system/system-token/index.ts | 13 ++ .../_system/system-token/system-token.vue | 126 ++++++++++++++++++ app/src/lang/translations/en-US.yaml | 10 +- 4 files changed, 150 insertions(+), 5 deletions(-) create mode 100644 app/src/interfaces/_system/system-token/index.ts create mode 100644 app/src/interfaces/_system/system-token/system-token.vue diff --git a/api/src/database/system-data/fields/users.yaml b/api/src/database/system-data/fields/users.yaml index 8caa4ffdbf..9f595a0a2c 100644 --- a/api/src/database/system-data/fields/users.yaml +++ b/api/src/database/system-data/fields/users.yaml @@ -135,10 +135,8 @@ fields: template: '{{ name }}' - field: token - interface: token - options: - iconRight: vpn_key - placeholder: $t:fields.directus_users.token_placeholder + interface: system-token + special: conceal width: full - field: id diff --git a/app/src/interfaces/_system/system-token/index.ts b/app/src/interfaces/_system/system-token/index.ts new file mode 100644 index 0000000000..3ff454c4b6 --- /dev/null +++ b/app/src/interfaces/_system/system-token/index.ts @@ -0,0 +1,13 @@ +import { defineInterface } from '@directus/shared/utils'; +import InterfaceSystemToken from './system-token.vue'; + +export default defineInterface({ + id: 'system-token', + name: '$t:interfaces.system-token.system-token', + description: '$t:interfaces.system-token.description', + icon: 'vpn_key', + component: InterfaceSystemToken, + system: true, + types: ['hash'], + options: [], +}); diff --git a/app/src/interfaces/_system/system-token/system-token.vue b/app/src/interfaces/_system/system-token/system-token.vue new file mode 100644 index 0000000000..a569a82480 --- /dev/null +++ b/app/src/interfaces/_system/system-token/system-token.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/app/src/lang/translations/en-US.yaml b/app/src/lang/translations/en-US.yaml index 5ef75d65ed..afb3d9e613 100644 --- a/app/src/lang/translations/en-US.yaml +++ b/app/src/lang/translations/en-US.yaml @@ -1042,7 +1042,6 @@ fields: status_archived: Archived role: Role token: Token - token_placeholder: Enter a secure access token... provider: Provider external_identifier: External Identifier last_page: Last Page @@ -1644,6 +1643,15 @@ interfaces: header_color: Header Color start_open: Start Open start_closed: Start Closed + system-token: + system-token: Token + description: Manage static access token + placeholder: Click "Generate Token" to create a new static access token + value_securely_saved: Value Securely Saved + generate: Generate Token + regenerate: Regenerate Token + generate_success_copy: Make sure to backup and copy the token above. For security reasons, you will not be able to view the token again after saving and navigate off this page. + remove_token: Remove Token displays: translations: translations: Translations