mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-13 14:44:43 -04:00
fix(repository): Move backend code into subdirectory
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
86584e705f
commit
bf30cbcf48
272 changed files with 87 additions and 67 deletions
182
backend/src/frontend-config/frontend-config.dto.ts
Normal file
182
backend/src/frontend-config/frontend-config.dto.ts
Normal file
|
@ -0,0 +1,182 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
import {
|
||||
IsArray,
|
||||
IsBoolean,
|
||||
IsNumber,
|
||||
IsOptional,
|
||||
IsString,
|
||||
IsUrl,
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
import { URL } from 'url';
|
||||
|
||||
import { GuestAccess } from '../config/guest_access.enum';
|
||||
import { ServerVersion } from '../monitoring/server-status.dto';
|
||||
import { BaseDto } from '../utils/base.dto.';
|
||||
|
||||
export enum AuthProviderType {
|
||||
LOCAL = 'local',
|
||||
LDAP = 'ldap',
|
||||
SAML = 'saml',
|
||||
OAUTH2 = 'oauth2',
|
||||
GITLAB = 'gitlab',
|
||||
FACEBOOK = 'facebook',
|
||||
GITHUB = 'github',
|
||||
TWITTER = 'twitter',
|
||||
DROPBOX = 'dropbox',
|
||||
GOOGLE = 'google',
|
||||
}
|
||||
|
||||
export type AuthProviderTypeWithCustomName =
|
||||
| AuthProviderType.LDAP
|
||||
| AuthProviderType.OAUTH2
|
||||
| AuthProviderType.SAML
|
||||
| AuthProviderType.GITLAB;
|
||||
|
||||
export type AuthProviderTypeWithoutCustomName =
|
||||
| AuthProviderType.LOCAL
|
||||
| AuthProviderType.FACEBOOK
|
||||
| AuthProviderType.GITHUB
|
||||
| AuthProviderType.TWITTER
|
||||
| AuthProviderType.DROPBOX
|
||||
| AuthProviderType.GOOGLE;
|
||||
|
||||
export class AuthProviderWithoutCustomNameDto extends BaseDto {
|
||||
/**
|
||||
* The type of the auth provider.
|
||||
*/
|
||||
@IsString()
|
||||
type: AuthProviderTypeWithoutCustomName;
|
||||
}
|
||||
|
||||
export class AuthProviderWithCustomNameDto extends BaseDto {
|
||||
/**
|
||||
* The type of the auth provider.
|
||||
*/
|
||||
@IsString()
|
||||
type: AuthProviderTypeWithCustomName;
|
||||
|
||||
/**
|
||||
* The identifier with which the auth provider can be called
|
||||
* @example gitlab-fsorg
|
||||
*/
|
||||
@IsString()
|
||||
identifier: string;
|
||||
|
||||
/**
|
||||
* The name given to the auth provider
|
||||
* @example GitLab fachschaften.org
|
||||
*/
|
||||
@IsString()
|
||||
providerName: string;
|
||||
}
|
||||
|
||||
export type AuthProviderDto =
|
||||
| AuthProviderWithCustomNameDto
|
||||
| AuthProviderWithoutCustomNameDto;
|
||||
|
||||
export class BrandingDto extends BaseDto {
|
||||
/**
|
||||
* The name to be displayed next to the HedgeDoc logo
|
||||
* @example ACME Corp
|
||||
*/
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
name?: string;
|
||||
|
||||
/**
|
||||
* The logo to be displayed next to the HedgeDoc logo
|
||||
* @example https://md.example.com/logo.png
|
||||
*/
|
||||
@IsUrl()
|
||||
@IsOptional()
|
||||
logo?: URL;
|
||||
}
|
||||
|
||||
export class SpecialUrlsDto extends BaseDto {
|
||||
/**
|
||||
* A link to the privacy notice
|
||||
* @example https://md.example.com/n/privacy
|
||||
*/
|
||||
@IsUrl()
|
||||
@IsOptional()
|
||||
privacy?: URL;
|
||||
|
||||
/**
|
||||
* A link to the terms of use
|
||||
* @example https://md.example.com/n/termsOfUse
|
||||
*/
|
||||
@IsUrl()
|
||||
@IsOptional()
|
||||
termsOfUse?: URL;
|
||||
|
||||
/**
|
||||
* A link to the imprint
|
||||
* @example https://md.example.com/n/imprint
|
||||
*/
|
||||
@IsUrl()
|
||||
@IsOptional()
|
||||
imprint?: URL;
|
||||
}
|
||||
|
||||
export class FrontendConfigDto extends BaseDto {
|
||||
/**
|
||||
* Maximum access level for guest users
|
||||
*/
|
||||
@IsString()
|
||||
guestAccess: GuestAccess;
|
||||
|
||||
/**
|
||||
* Are users allowed to register on this instance?
|
||||
*/
|
||||
@IsBoolean()
|
||||
allowRegister: boolean;
|
||||
|
||||
/**
|
||||
* Which auth providers are enabled and how are they configured?
|
||||
*/
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
authProviders: AuthProviderDto[];
|
||||
|
||||
/**
|
||||
* Individual branding information
|
||||
*/
|
||||
@ValidateNested()
|
||||
branding: BrandingDto;
|
||||
|
||||
/**
|
||||
* Is an image proxy enabled?
|
||||
*/
|
||||
@IsBoolean()
|
||||
useImageProxy: boolean;
|
||||
|
||||
/**
|
||||
* Links to some special pages
|
||||
*/
|
||||
@ValidateNested()
|
||||
specialUrls: SpecialUrlsDto;
|
||||
|
||||
/**
|
||||
* The version of HedgeDoc
|
||||
*/
|
||||
@ValidateNested()
|
||||
version: ServerVersion;
|
||||
|
||||
/**
|
||||
* The plantUML server that should be used to render.
|
||||
*/
|
||||
@IsUrl()
|
||||
@IsOptional()
|
||||
plantUmlServer?: URL;
|
||||
|
||||
/**
|
||||
* The maximal length of each document
|
||||
*/
|
||||
@IsNumber()
|
||||
maxDocumentLength: number;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue