aboutsummaryrefslogtreecommitdiffstats
path: root/apps/settings/src/constants/AccountPropertyConstants.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings/src/constants/AccountPropertyConstants.js')
-rw-r--r--apps/settings/src/constants/AccountPropertyConstants.js201
1 files changed, 0 insertions, 201 deletions
diff --git a/apps/settings/src/constants/AccountPropertyConstants.js b/apps/settings/src/constants/AccountPropertyConstants.js
deleted file mode 100644
index 3aee0006bc6..00000000000
--- a/apps/settings/src/constants/AccountPropertyConstants.js
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-/*
- * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php`
- */
-
-import { mdiAccountGroup, mdiCellphone, mdiLock, mdiWeb } from '@mdi/js'
-import { translate as t } from '@nextcloud/l10n'
-
-/** Enum of account properties */
-export const ACCOUNT_PROPERTY_ENUM = Object.freeze({
- ADDRESS: 'address',
- AVATAR: 'avatar',
- BIOGRAPHY: 'biography',
- DISPLAYNAME: 'displayname',
- EMAIL_COLLECTION: 'additional_mail',
- EMAIL: 'email',
- HEADLINE: 'headline',
- NOTIFICATION_EMAIL: 'notify_email',
- FEDIVERSE: 'fediverse',
- ORGANISATION: 'organisation',
- PHONE: 'phone',
- PROFILE_ENABLED: 'profile_enabled',
- ROLE: 'role',
- TWITTER: 'twitter',
- WEBSITE: 'website',
- BIRTHDATE: 'birthdate',
-})
-
-/** Enum of account properties to human readable account property names */
-export const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({
- ADDRESS: t('settings', 'Location'),
- AVATAR: t('settings', 'Profile picture'),
- BIOGRAPHY: t('settings', 'About'),
- DISPLAYNAME: t('settings', 'Full name'),
- EMAIL_COLLECTION: t('settings', 'Additional email'),
- EMAIL: t('settings', 'Email'),
- HEADLINE: t('settings', 'Headline'),
- ORGANISATION: t('settings', 'Organisation'),
- PHONE: t('settings', 'Phone number'),
- PROFILE_ENABLED: t('settings', 'Profile'),
- ROLE: t('settings', 'Role'),
- TWITTER: t('settings', 'X (formerly Twitter)'),
- FEDIVERSE: t('settings', 'Fediverse (e.g. Mastodon)'),
- WEBSITE: t('settings', 'Website'),
- BIRTHDATE: t('settings', 'Date of birth'),
-})
-
-export const NAME_READABLE_ENUM = Object.freeze({
- [ACCOUNT_PROPERTY_ENUM.ADDRESS]: ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS,
- [ACCOUNT_PROPERTY_ENUM.AVATAR]: ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR,
- [ACCOUNT_PROPERTY_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,
- [ACCOUNT_PROPERTY_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME,
- [ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION,
- [ACCOUNT_PROPERTY_ENUM.EMAIL]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,
- [ACCOUNT_PROPERTY_ENUM.HEADLINE]: ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,
- [ACCOUNT_PROPERTY_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,
- [ACCOUNT_PROPERTY_ENUM.PHONE]: ACCOUNT_PROPERTY_READABLE_ENUM.PHONE,
- [ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,
- [ACCOUNT_PROPERTY_ENUM.ROLE]: ACCOUNT_PROPERTY_READABLE_ENUM.ROLE,
- [ACCOUNT_PROPERTY_ENUM.TWITTER]: ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER,
- [ACCOUNT_PROPERTY_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE,
- [ACCOUNT_PROPERTY_ENUM.WEBSITE]: ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE,
- [ACCOUNT_PROPERTY_ENUM.BIRTHDATE]: ACCOUNT_PROPERTY_READABLE_ENUM.BIRTHDATE,
-})
-
-/** Enum of profile specific sections to human readable names */
-export const PROFILE_READABLE_ENUM = Object.freeze({
- PROFILE_VISIBILITY: t('settings', 'Profile visibility'),
-})
-
-/** Enum of readable account properties to account property keys used by the server */
-export const PROPERTY_READABLE_KEYS_ENUM = Object.freeze({
- [ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: ACCOUNT_PROPERTY_ENUM.ADDRESS,
- [ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: ACCOUNT_PROPERTY_ENUM.AVATAR,
- [ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_ENUM.BIOGRAPHY,
- [ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_ENUM.DISPLAYNAME,
- [ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,
- [ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: ACCOUNT_PROPERTY_ENUM.EMAIL,
- [ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: ACCOUNT_PROPERTY_ENUM.HEADLINE,
- [ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_ENUM.ORGANISATION,
- [ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: ACCOUNT_PROPERTY_ENUM.PHONE,
- [ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED,
- [ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: ACCOUNT_PROPERTY_ENUM.ROLE,
- [ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: ACCOUNT_PROPERTY_ENUM.TWITTER,
- [ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_ENUM.FEDIVERSE,
- [ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: ACCOUNT_PROPERTY_ENUM.WEBSITE,
- [ACCOUNT_PROPERTY_READABLE_ENUM.BIRTHDATE]: ACCOUNT_PROPERTY_ENUM.BIRTHDATE,
-})
-
-/**
- * Enum of account setting properties
- *
- * Account setting properties unlike account properties do not support scopes*
- */
-export const ACCOUNT_SETTING_PROPERTY_ENUM = Object.freeze({
- LANGUAGE: 'language',
- LOCALE: 'locale',
-})
-
-/** Enum of account setting properties to human readable setting properties */
-export const ACCOUNT_SETTING_PROPERTY_READABLE_ENUM = Object.freeze({
- LANGUAGE: t('settings', 'Language'),
- LOCALE: t('settings', 'Locale'),
-})
-
-/** Enum of scopes */
-export const SCOPE_ENUM = Object.freeze({
- PRIVATE: 'v2-private',
- LOCAL: 'v2-local',
- FEDERATED: 'v2-federated',
- PUBLISHED: 'v2-published',
-})
-
-/** Enum of readable account properties to supported scopes */
-export const PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM = Object.freeze({
- [ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: [SCOPE_ENUM.LOCAL],
- [ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: [SCOPE_ENUM.LOCAL],
- [ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: [SCOPE_ENUM.LOCAL],
- [ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
- [ACCOUNT_PROPERTY_READABLE_ENUM.BIRTHDATE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],
-})
-
-/** List of readable account properties which aren't published to the lookup server */
-export const UNPUBLISHED_READABLE_PROPERTIES = Object.freeze([
- ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,
- ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,
- ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,
- ACCOUNT_PROPERTY_READABLE_ENUM.ROLE,
- ACCOUNT_PROPERTY_READABLE_ENUM.BIRTHDATE,
-])
-
-/** Scope suffix */
-export const SCOPE_SUFFIX = 'Scope'
-
-/**
- * Enum of scope names to properties
- *
- * Used for federation control*
- */
-export const SCOPE_PROPERTY_ENUM = Object.freeze({
- [SCOPE_ENUM.PRIVATE]: {
- name: SCOPE_ENUM.PRIVATE,
- displayName: t('settings', 'Private'),
- tooltip: t('settings', 'Only visible to people matched via phone number integration through Talk on mobile'),
- tooltipDisabled: t('settings', 'Not available as this property is required for core functionality including file sharing and calendar invitations'),
- icon: mdiCellphone,
- },
- [SCOPE_ENUM.LOCAL]: {
- name: SCOPE_ENUM.LOCAL,
- displayName: t('settings', 'Local'),
- tooltip: t('settings', 'Only visible to people on this instance and guests'),
- // tooltipDisabled is not required here as this scope is supported by all account properties
- icon: mdiLock,
- },
- [SCOPE_ENUM.FEDERATED]: {
- name: SCOPE_ENUM.FEDERATED,
- displayName: t('settings', 'Federated'),
- tooltip: t('settings', 'Only synchronize to trusted servers'),
- tooltipDisabled: t('settings', 'Not available as federation has been disabled for your account, contact your system administration if you have any questions'),
- icon: mdiAccountGroup,
- },
- [SCOPE_ENUM.PUBLISHED]: {
- name: SCOPE_ENUM.PUBLISHED,
- displayName: t('settings', 'Published'),
- tooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),
- tooltipDisabled: t('settings', 'Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions'),
- icon: mdiWeb,
- },
-})
-
-/** Default additional email scope */
-export const DEFAULT_ADDITIONAL_EMAIL_SCOPE = SCOPE_ENUM.LOCAL
-
-/** Enum of verification constants, according to IAccountManager */
-export const VERIFICATION_ENUM = Object.freeze({
- NOT_VERIFIED: 0,
- VERIFICATION_IN_PROGRESS: 1,
- VERIFIED: 2,
-})
-
-/**
- * Email validation regex
- *
- * Sourced from https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/regexp/ascii.ts*
- */
-// eslint-disable-next-line no-control-regex
-export const VALIDATE_EMAIL_REGEX = /^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/i