From 37fd11a8cb41e34c16a499a6e54bd2d5d3fb4da3 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Tue, 18 Oct 2022 09:30:30 +0200
Subject: [PATCH] Nextcloud show initial password in admin settings and option
to enable debug mode #96
---
.../lib/Controller/FetchController.php | 8 +++++++
.../snappymail/lib/Settings/AdminSettings.php | 22 +++++++++++++++++++
.../snappymail/templates/admin-local.php | 10 ++++++++-
3 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/integrations/nextcloud/snappymail/lib/Controller/FetchController.php b/integrations/nextcloud/snappymail/lib/Controller/FetchController.php
index 1b7b9fe76..fd19366c6 100644
--- a/integrations/nextcloud/snappymail/lib/Controller/FetchController.php
+++ b/integrations/nextcloud/snappymail/lib/Controller/FetchController.php
@@ -59,6 +59,14 @@ class FetchController extends Controller {
]);
}
+ \OCA\SnappyMail\Util\SnappyMailHelper::startApp();
+ $debug = !empty($_POST['snappymail-debug']);
+ $oConfig = \RainLoop\Api::Config();
+ if ($debug != $oConfig->Get('debug', 'enable', false)) {
+ $oConfig->Set('debug', 'enable', $debug);
+ $oConfig->Save();
+ }
+
return new JSONResponse([
'status' => 'success',
'Message' => $this->l->t('Saved successfully')
diff --git a/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php b/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php
index 9003a30b4..ffb4ef6ba 100644
--- a/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php
+++ b/integrations/nextcloud/snappymail/lib/Settings/AdminSettings.php
@@ -31,6 +31,28 @@ class AdminSettings implements ISettings
if (\OC_User::isAdminUser($uid)) {
$parameters['snappymail-admin-panel-link'] = SnappyMailHelper::getAppUrl().'?admin';
}
+
+ \OCA\SnappyMail\Util\SnappyMailHelper::startApp();
+ $oConfig = \RainLoop\Api::Config();
+ $passfile = APP_PRIVATE_DATA . 'admin_password.txt';
+ $sPassword = $oConfig->Get('security', 'admin_password', '');
+ if (!$sPassword) {
+ $sPassword = \substr(\base64_encode(\random_bytes(16)), 0, 12);
+ \RainLoop\Utils::saveFile($passfile, $sPassword . "\n");
+ $oConfig->SetPassword($sPassword);
+ $oConfig->Save();
+ } else if (\is_file($passfile)) {
+ $sPassword = \file_get_contents($passfile);
+ } else {
+ $sPassword = '';
+ }
+ if ($sPassword) {
+ $parameters['snappymail-admin-panel-link'] .= SnappyMailHelper::getAppUrl().'?admin#/security';
+ }
+ $parameters['snappymail-admin-password'] = $sPassword;
+
+ $parameters['snappymail-debug'] = $oConfig->Get('debug', 'enable', false);
+
\OCP\Util::addScript('snappymail', 'snappymail');
return new TemplateResponse('snappymail', 'admin-local', $parameters);
}
diff --git a/integrations/nextcloud/snappymail/templates/admin-local.php b/integrations/nextcloud/snappymail/templates/admin-local.php
index b33f1987c..ea92cecc7 100755
--- a/integrations/nextcloud/snappymail/templates/admin-local.php
+++ b/integrations/nextcloud/snappymail/templates/admin-local.php
@@ -9,6 +9,11 @@
t('Go to SnappyMail Webmail admin panel')); ?>
+
+
+ Username: admin
+ Temporary password:
+
>
+ > + +