diff --git a/docs/customisations.md b/docs/customisations.md index b5075b6fce..a6f72ab1ab 100644 --- a/docs/customisations.md +++ b/docs/customisations.md @@ -11,8 +11,8 @@ Customisations will be removed from the codebase in a future release. Element Web and the React SDK support "customisation points" that can be used to easily add custom logic specific to a particular deployment of Element Web. -An example of this is the [security customisations -module](https://github.com/element-hq/element-web/blob/develop/src/customisations/Security.ts). +An example of this is the [media customisations +module](https://github.com/element-hq/element-web/blob/develop/src/customisations/Media.ts). This module in the React SDK only defines some empty functions and their types: it does not do anything by default. @@ -21,14 +21,14 @@ Web so that you can add your own code. Even though the default module is part of the React SDK, you can still override it from the Element Web layer: 1. Copy the default customisation module to - `element-web/src/customisations/YourNameSecurity.ts` + `element-web/src/customisations/YourNameMedia.ts` 2. Edit customisations points and make sure export the ones you actually want to activate 3. Create/add an entry to `customisations.json` next to the webpack config: ```json { - "src/customisations/Security.ts": "src/customisations/YourNameSecurity.ts" + "src/customisations/Media.ts": "src/customisations/YourNameMedia.ts" } ``` diff --git a/src/customisations/Security.ts b/src/customisations/Security.ts deleted file mode 100644 index c1b8b580a9..0000000000 --- a/src/customisations/Security.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. -Copyright 2020 The Matrix.org Foundation C.I.C. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only -Please see LICENSE files in the repository root for full details. -*/ -import { CryptoCallbacks } from "matrix-js-sdk/src/crypto-api"; - -import { IMatrixClientCreds } from "../MatrixClientPeg"; -import { Kind as SetupEncryptionKind } from "../toasts/SetupEncryptionToast"; - -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -function examineLoginResponse(response: any, credentials: IMatrixClientCreds): void { - // E.g. add additional data to the persisted credentials -} - -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -function persistCredentials(credentials: IMatrixClientCreds): void { - // E.g. store any additional credential fields -} - -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -function createSecretStorageKey(): Uint8Array | null { - // E.g. generate or retrieve secret storage key somehow - return null; -} - -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -function getSecretStorageKey(): Uint8Array | null { - // E.g. retrieve secret storage key from some other place - return null; -} - -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -function catchAccessSecretStorageError(e: unknown): void { - // E.g. notify the user in some way -} - -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -function setupEncryptionNeeded(kind: SetupEncryptionKind): boolean { - // E.g. trigger some kind of setup - return false; -} - -// This interface summarises all available customisation points and also marks -// them all as optional. This allows customisers to only define and export the -// customisations they need while still maintaining type safety. -export interface ISecurityCustomisations { - examineLoginResponse?: typeof examineLoginResponse; - persistCredentials?: typeof persistCredentials; - createSecretStorageKey?: typeof createSecretStorageKey; - getSecretStorageKey?: typeof getSecretStorageKey; - catchAccessSecretStorageError?: typeof catchAccessSecretStorageError; - setupEncryptionNeeded?: typeof setupEncryptionNeeded; - getDehydrationKey?: CryptoCallbacks["getDehydrationKey"]; - - /** - * When false, disables the post-login UI from showing. If there's - * an error during setup, that will be shown to the user. - * - * Note: when this is set to false then the app will assume the user's - * encryption is set up some other way which would circumvent the default - * UI, such as by presenting alternative UI. - */ - SHOW_ENCRYPTION_SETUP_UI?: boolean; // default true -} - -// A real customisation module will define and export one or more of the -// customisation points that make up `ISecurityCustomisations`. -export default { - SHOW_ENCRYPTION_SETUP_UI: true, -} as ISecurityCustomisations;