diff --git a/vocodes/src/common/ApiConfig.ts b/vocodes/src/common/ApiConfig.ts index 4680a53fc8..83f9c8081f 100644 --- a/vocodes/src/common/ApiConfig.ts +++ b/vocodes/src/common/ApiConfig.ts @@ -198,6 +198,18 @@ class ApiConfig { return `${this.getScheme()}://${this.getNewApiHost()}/events`; } + getModerationIpBanList(): string { + return `${this.getScheme()}://${this.getNewApiHost()}/moderation/ip_bans/list`; + } + + createModerationIpBan(): string { + return `${this.getScheme()}://${this.getNewApiHost()}/moderation/ip_bans/add`; + } + + deleteModerationIpBan(ipAddress: string): string { + return `${this.getScheme()}://${this.getNewApiHost()}/moderation/ip_bans/${ipAddress}/delete`; + } + private getScheme() : string { return this.isLocalDev ? "http" : "https"; } diff --git a/vocodes/src/v2/NewFooterNavFc.tsx b/vocodes/src/v2/NewFooterNavFc.tsx index fe8c4495f4..162b1e1871 100644 --- a/vocodes/src/v2/NewFooterNavFc.tsx +++ b/vocodes/src/v2/NewFooterNavFc.tsx @@ -7,9 +7,19 @@ interface Props { } function NewFooterNavFc(props: Props) { + + let moderationLink = ; + + if (props.sessionWrapper.canBanUsers()) { + moderationLink = ( + Mod Controls + ); + } + return (
We're trying to build a democratized future of creativity, filmmaking and storytelling.
Contact @echelon for more information.
diff --git a/vocodes/src/v2/NewVocodesContainer.tsx b/vocodes/src/v2/NewVocodesContainer.tsx
index a6ef9f6fbc..ce326218fe 100644
--- a/vocodes/src/v2/NewVocodesContainer.tsx
+++ b/vocodes/src/v2/NewVocodesContainer.tsx
@@ -1,6 +1,8 @@
import React from 'react';
import { FirehoseEventListFc } from './firehose/FirehoseEventListFc';
import { LoginFc } from './login/LoginFc';
+import { ModerationFc } from './moderation/ModerationFc';
+import { ModerationIpBanListFc } from './moderation_ip_ban_list/ModerationIpBanListFc';
import { NewFooterNavFc } from './NewFooterNavFc';
import { NewTopNavFc } from './NewTopNavFc';
import { ProfileEditFc } from './profile_edit/ProfileEditFc';
@@ -15,7 +17,6 @@ import { TtsModelUploadJob } from '../jobs/TtsModelUploadJobs';
import { TtsModelViewFc } from './tts_model_view/TtsModelViewFc';
import { TtsResultViewFc } from './tts_result_view/TtsResultViewFc';
import { UploadChoiceFc } from './upload/UploadChoiceFc';
-import { UploadComponent } from './upload/UploadComponent';
import { UploadTtsModelFc } from './upload/UploadTtsModelFc';
import { UploadW2lPhotoFc } from './upload/UploadW2lPhotoFc';
import { UploadW2lVideoFc } from './upload/UploadW2lVideoFc';
@@ -176,6 +177,18 @@ class NewVocodesContainer extends React.Component More mod controls will be added in the future: user roles, activity tracking, timed bans, account bans, etc. IP Address bans will prevent bad actors from using and abusing the website. Moderation Controls
+
+ IP Ban List
+
+
+ Unauthorized
;
+ }
+
+ let rows : Array
+
+ )
+ });
+
+ return (
+ {ban.ip_address}
+ {ban.mod_notes}
+ {ban.created_at}
+ Moderation Ip Ban List
+
+
+
+ Create Ban
+
+
+
+
+
+
+ Existing Bans
+
+
+
+
+
+
+
+
+ {rows}
+
+ IP Address
+ Moderator Notes
+ Created At
+