From 92925e24ae1f6a7308a501e37e513ada24134323 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Wed, 22 Aug 2018 12:34:43 +0100
Subject: [PATCH] Enable or disable peertube registrations

---
 src/freedombone-app-peertube                   | 14 ++++++++++++++
 ...gs_registration.html => settings_gogs.html} |  0
 webadmin/settings_peertube.php                 | 18 ++++++++++++++++++
 3 files changed, 32 insertions(+)
 rename webadmin/EN/{settings_gogs_registration.html => settings_gogs.html} (100%)
 create mode 100755 webadmin/settings_peertube.php

diff --git a/src/freedombone-app-peertube b/src/freedombone-app-peertube
index 0559c477a..139b919bc 100755
--- a/src/freedombone-app-peertube
+++ b/src/freedombone-app-peertube
@@ -57,6 +57,20 @@ peertube_variables=(PEERTUBE_DOMAIN_NAME
                     ARCHITECTURE
                     MY_EMAIL_ADDRESS)
 
+function peertube_setting_registration {
+    allow_registrations="$1"
+
+    if [[ "$allow_registrations" == '1' ]]; then
+        sed -i "0,/enabled:.*/s//enabled: false/" $PEERTUBE_DIR/config/production.yaml
+        systemctl restart peertube
+    fi
+
+    if [[ "$allow_registrations" == '0' ]]; then
+        sed -i "0,/enabled:.*/s//enabled: true/" $PEERTUBE_DIR/config/production.yaml
+        systemctl restart peertube
+    fi
+}
+
 function peertube_import_from_syncthing {
     peertubedomain="https://$PEERTUBE_DOMAIN_NAME"
     nodecmd='node'
diff --git a/webadmin/EN/settings_gogs_registration.html b/webadmin/EN/settings_gogs.html
similarity index 100%
rename from webadmin/EN/settings_gogs_registration.html
rename to webadmin/EN/settings_gogs.html
diff --git a/webadmin/settings_peertube.php b/webadmin/settings_peertube.php
new file mode 100755
index 000000000..c6ad91302
--- /dev/null
+++ b/webadmin/settings_peertube.php
@@ -0,0 +1,18 @@
+<?php
+
+// Peertube settings menu
+
+$output_filename = "app_peertube.html";
+
+if (isset($_POST['submitallowregistrations'])) {
+    $confirm = htmlspecialchars($_POST['allowregistrations']);
+    $settings_file = fopen(".appsettings.txt", "w") or die("Unable to write to appsettings file");
+    fwrite($settings_file, "peertube,registration,".$confirm);
+    fclose($settings_file);
+}
+
+$htmlfile = fopen("$output_filename", "r") or die("Unable to open $output_filename");
+echo fread($htmlfile,filesize("$output_filename"));
+fclose($htmlfile);
+
+?>
-- 
GitLab