From d407d8ebe7ce34f3f85b5241ea6a1d0381b74e09 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Mon, 19 Dec 2022 16:51:24 +1100 Subject: [PATCH] Add additional config --- src/api/util/utility/EmbedHandlers.ts | 2 +- src/gateway/opcodes/VoiceStateUpdate.ts | 2 +- src/util/config/Config.ts | 25 +++++++++++++++++-- src/util/config/index.ts | 2 +- src/util/config/types/CdnConfiguration.ts | 7 ++++++ src/util/config/types/ClientConfiguration.ts | 2 -- .../types/ExternalTokensConfiguration.ts | 3 +++ src/util/config/types/GeneralConfiguration.ts | 4 +-- src/util/config/types/GuildConfiguration.ts | 1 + .../config/types/RegisterConfiguration.ts | 4 +-- .../config/types/SecurityConfiguration.ts | 2 -- src/util/config/types/index.ts | 4 ++- .../config/types/subconfigurations/index.ts | 16 ++++++------ src/util/entities/User.ts | 2 +- src/util/index.ts | 1 + 15 files changed, 53 insertions(+), 24 deletions(-) create mode 100644 src/util/config/types/CdnConfiguration.ts create mode 100644 src/util/config/types/ExternalTokensConfiguration.ts diff --git a/src/api/util/utility/EmbedHandlers.ts b/src/api/util/utility/EmbedHandlers.ts index a8738a4a..dca264d0 100644 --- a/src/api/util/utility/EmbedHandlers.ts +++ b/src/api/util/utility/EmbedHandlers.ts @@ -18,7 +18,7 @@ export const DEFAULT_FETCH_OPTIONS: any = { export const getProxyUrl = (url: URL, width: number, height: number): string => { const { resizeWidthMax, resizeHeightMax, imagorServerUrl } = Config.get().cdn; - const secret = Config.get().security.jwtSecret; // maybe shouldn't use this? + const secret = Config.get().security.requestSignature; width = Math.min(width || 500, resizeWidthMax || width); height = Math.min(height || 500, resizeHeightMax || width); diff --git a/src/gateway/opcodes/VoiceStateUpdate.ts b/src/gateway/opcodes/VoiceStateUpdate.ts index 479efec3..94cdef44 100644 --- a/src/gateway/opcodes/VoiceStateUpdate.ts +++ b/src/gateway/opcodes/VoiceStateUpdate.ts @@ -10,8 +10,8 @@ import { VoiceState, VoiceStateUpdateEvent, VoiceStateUpdateSchema, + Region, } from "@fosscord/util"; -import { Region } from "@fosscord/util/src/config"; // TODO: check if a voice server is setup // Notice: Bot users respect the voice channel's user limit, if set. diff --git a/src/util/config/Config.ts b/src/util/config/Config.ts index b703040f..b6c725f5 100644 --- a/src/util/config/Config.ts +++ b/src/util/config/Config.ts @@ -1,8 +1,28 @@ -import { ApiConfiguration, ClientConfiguration, DefaultsConfiguration, EndpointConfiguration, GeneralConfiguration, GifConfiguration, GuildConfiguration, KafkaConfiguration, LimitsConfiguration, LoginConfiguration, MetricsConfiguration, RabbitMQConfiguration, RegionConfiguration, RegisterConfiguration, SecurityConfiguration, SentryConfiguration, TemplateConfiguration } from "../config"; +import { + ApiConfiguration, + CdnConfiguration, + ClientConfiguration, + DefaultsConfiguration, + EndpointConfiguration, + ExternalTokensConfiguration, + GeneralConfiguration, + GifConfiguration, + GuildConfiguration, + KafkaConfiguration, + LimitsConfiguration, + LoginConfiguration, + MetricsConfiguration, + RabbitMQConfiguration, + RegionConfiguration, + RegisterConfiguration, + SecurityConfiguration, + SentryConfiguration, + TemplateConfiguration +} from "../config"; export class ConfigValue { gateway: EndpointConfiguration = new EndpointConfiguration(); - cdn: EndpointConfiguration = new EndpointConfiguration(); + cdn: CdnConfiguration = new CdnConfiguration(); api: ApiConfiguration = new ApiConfiguration(); general: GeneralConfiguration = new GeneralConfiguration(); limits: LimitsConfiguration = new LimitsConfiguration(); @@ -19,4 +39,5 @@ export class ConfigValue { metrics: MetricsConfiguration = new MetricsConfiguration(); sentry: SentryConfiguration = new SentryConfiguration(); defaults: DefaultsConfiguration = new DefaultsConfiguration(); + external: ExternalTokensConfiguration = new ExternalTokensConfiguration(); } \ No newline at end of file diff --git a/src/util/config/index.ts b/src/util/config/index.ts index 0a9b58ae..adb6984c 100644 --- a/src/util/config/index.ts +++ b/src/util/config/index.ts @@ -1,2 +1,2 @@ export * from "./Config"; -export * from "./types/index"; +export * from "./types"; diff --git a/src/util/config/types/CdnConfiguration.ts b/src/util/config/types/CdnConfiguration.ts new file mode 100644 index 00000000..f58c1c64 --- /dev/null +++ b/src/util/config/types/CdnConfiguration.ts @@ -0,0 +1,7 @@ +import { EndpointConfiguration } from "./EndpointConfiguration"; + +export class CdnConfiguration extends EndpointConfiguration { + resizeHeightMax: number = 1000; + resizeWidthMax: number = 1000; + imagorServerUrl: string | null = null; +} \ No newline at end of file diff --git a/src/util/config/types/ClientConfiguration.ts b/src/util/config/types/ClientConfiguration.ts index 1adda1e2..69b5e154 100644 --- a/src/util/config/types/ClientConfiguration.ts +++ b/src/util/config/types/ClientConfiguration.ts @@ -1,8 +1,6 @@ import { ClientReleaseConfiguration } from "."; export class ClientConfiguration { - //classes releases: ClientReleaseConfiguration = new ClientReleaseConfiguration(); - //base types useTestClient: boolean = true; } \ No newline at end of file diff --git a/src/util/config/types/ExternalTokensConfiguration.ts b/src/util/config/types/ExternalTokensConfiguration.ts new file mode 100644 index 00000000..5c020745 --- /dev/null +++ b/src/util/config/types/ExternalTokensConfiguration.ts @@ -0,0 +1,3 @@ +export class ExternalTokensConfiguration { + twitter: string | null = null; +} \ No newline at end of file diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts index 55848b44..7c0ffa66 100644 --- a/src/util/config/types/GeneralConfiguration.ts +++ b/src/util/config/types/GeneralConfiguration.ts @@ -1,11 +1,11 @@ -import { Snowflake } from "../../util"; +import { Snowflake } from "@fosscord/util"; export class GeneralConfiguration { instanceName: string = "Fosscord Instance"; instanceDescription: string | null = "This is a Fosscord instance made in the pre-release days"; frontPage: string | null = null; tosPage: string | null = null; - correspondenceEmail: string | null = "noreply@localhost.local"; + correspondenceEmail: string | null = null; correspondenceUserID: string | null = null; image: string | null = null; instanceId: string = Snowflake.generate(); diff --git a/src/util/config/types/GuildConfiguration.ts b/src/util/config/types/GuildConfiguration.ts index 3d43b368..e77d3fce 100644 --- a/src/util/config/types/GuildConfiguration.ts +++ b/src/util/config/types/GuildConfiguration.ts @@ -3,4 +3,5 @@ import { DiscoveryConfiguration, AutoJoinConfiguration } from "."; export class GuildConfiguration { discovery: DiscoveryConfiguration = new DiscoveryConfiguration(); autoJoin: AutoJoinConfiguration = new AutoJoinConfiguration(); + defaultFeatures: string[] = []; } diff --git a/src/util/config/types/RegisterConfiguration.ts b/src/util/config/types/RegisterConfiguration.ts index a0dc97c5..75b40417 100644 --- a/src/util/config/types/RegisterConfiguration.ts +++ b/src/util/config/types/RegisterConfiguration.ts @@ -1,11 +1,9 @@ import { DateOfBirthConfiguration, EmailConfiguration, PasswordConfiguration } from "."; export class RegisterConfiguration { - //classes email: EmailConfiguration = new EmailConfiguration(); dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration(); password: PasswordConfiguration = new PasswordConfiguration(); - //base types disabled: boolean = false; requireCaptcha: boolean = true; requireInvite: boolean = false; @@ -14,5 +12,5 @@ export class RegisterConfiguration { allowMultipleAccounts: boolean = true; blockProxies: boolean = true; incrementingDiscriminators: boolean = false; // random otherwise - defaultRights: string = "0"; + defaultRights: string = "30644591655940"; // See `npm run generate:rights` } diff --git a/src/util/config/types/SecurityConfiguration.ts b/src/util/config/types/SecurityConfiguration.ts index 405b86ac..60f4a9c8 100644 --- a/src/util/config/types/SecurityConfiguration.ts +++ b/src/util/config/types/SecurityConfiguration.ts @@ -2,10 +2,8 @@ import crypto from "crypto"; import { CaptchaConfiguration, TwoFactorConfiguration } from "."; export class SecurityConfiguration { - //classes captcha: CaptchaConfiguration = new CaptchaConfiguration(); twoFactor: TwoFactorConfiguration = new TwoFactorConfiguration(); - //base types autoUpdate: boolean | number = true; requestSignature: string = crypto.randomBytes(32).toString("base64"); jwtSecret: string = crypto.randomBytes(256).toString("base64"); diff --git a/src/util/config/types/index.ts b/src/util/config/types/index.ts index 608503a0..f20fe121 100644 --- a/src/util/config/types/index.ts +++ b/src/util/config/types/index.ts @@ -1,7 +1,9 @@ export * from "./ApiConfiguration"; +export * from "./CdnConfiguration"; export * from "./ClientConfiguration"; export * from "./DefaultsConfiguration"; export * from "./EndpointConfiguration"; +export * from "./ExternalTokensConfiguration"; export * from "./GeneralConfiguration"; export * from "./GifConfiguration"; export * from "./GuildConfiguration"; @@ -15,4 +17,4 @@ export * from "./RegisterConfiguration"; export * from "./SecurityConfiguration"; export * from "./SentryConfiguration"; export * from "./TemplateConfiguration"; -export * from "./subconfigurations/index"; +export * from "./subconfigurations"; \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/index.ts b/src/util/config/types/subconfigurations/index.ts index bfbadc92..5bd60911 100644 --- a/src/util/config/types/subconfigurations/index.ts +++ b/src/util/config/types/subconfigurations/index.ts @@ -1,8 +1,8 @@ -export * from "./client/index"; -export * from "./defaults/index"; -export * from "./guild/index"; -export * from "./kafka/index"; -export * from "./limits/index"; -export * from "./region/index"; -export * from "./register/index"; -export * from "./security/index"; +export * from "./client"; +export * from "./defaults"; +export * from "./guild"; +export * from "./kafka"; +export * from "./limits"; +export * from "./region"; +export * from "./register"; +export * from "./security"; diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index 577e13f7..ea726368 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -344,7 +344,7 @@ export class User extends BaseClass { disabled: false, deleted: false, email: email, - rights: Config.get().security.defaultRights, + rights: Config.get().register.defaultRights, nsfw_allowed: true, // TODO: depending on age public_flags: 0, flags: "0", // TODO: generate diff --git a/src/util/index.ts b/src/util/index.ts index 3773c275..7b4dc936 100644 --- a/src/util/index.ts +++ b/src/util/index.ts @@ -6,3 +6,4 @@ export * from "./entities/index"; export * from "./dtos/index"; export * from "./schemas"; export * from "./imports"; +export * from "./config" \ No newline at end of file