From 0ed88e13d2d225a4d4f5e2c7c147eb11e4ecfc78 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Fri, 22 Mar 2019 01:27:52 +0100 Subject: [PATCH] Make saving work. Password needs to be asked if neccessary (not yet implemented using OC.PasswordConfirmation.requiresPasswordConfirmation) --- appinfo/routes.php | 8 ++----- ...roller.php => SecondaryMailController.php} | 24 +++++++++++-------- templates/settings/personal.php | 10 ++++---- 3 files changed, 21 insertions(+), 21 deletions(-) rename lib/Controller/{SecondarymailController.php => SecondaryMailController.php} (78%) diff --git a/appinfo/routes.php b/appinfo/routes.php index b06ab5f..8c4874d 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -8,12 +8,8 @@ * it's instantiated in there */ return [ - 'ocs' => [ - ['name' => 'secondarymail#setProperty', 'url' => '/settings', 'verb' => 'POST'], - ['name' => 'secondarymail#getAddress', 'url' => '/getAddress/{id}', 'verb' => 'GET'], - ], 'routes' => [ - ['name' => 'secondarymail#setProperty', 'url' => '/settings', 'verb' => 'POST'], - ['name' => 'secondarymail#getAddress', 'url' => '/getAddress/{id}', 'verb' => 'GET'], + ['name' => 'SecondaryMail#setProperty', 'url' => '/settings', 'verb' => 'POST'], + ['name' => 'SecondaryMail#getAddress', 'url' => '/getAddress/{id}', 'verb' => 'GET'], ] ]; diff --git a/lib/Controller/SecondarymailController.php b/lib/Controller/SecondaryMailController.php similarity index 78% rename from lib/Controller/SecondarymailController.php rename to lib/Controller/SecondaryMailController.php index a197d90..66af624 100644 --- a/lib/Controller/SecondarymailController.php +++ b/lib/Controller/SecondaryMailController.php @@ -23,29 +23,29 @@ namespace OCA\SecondaryMail\Controller; -use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCSController; use OCP\IRequest; use OCP\IConfig; use OCP\IUserManager; +use OCP\IUserSession; -class SecondarymailController extends OCSController { +class SecondaryMailController extends OCSController { private $config; private $userManager; + protected $user; public function __construct( $appName, IRequest $request, - $corsMethods = 'PUT, POST, GET, DELETE, PATCH', - $corsAllowedHeaders = 'Authorization, Content-Type, Accept', - $corsMaxAge = 1728000, IConfig $config, - IUserManager $userManager + IUserManager $userManager, + IUserSession $userSession ) { - parent::__construct($appName, $request, $corsMethods, $corsAllowedHeaders, $corsMaxAge); + parent::__construct($appName, $request); $this->config = $config; $this->userManager = $userManager; + $this->user = $userSession->getUser()->getUID(); error_log('MailsSecondaryController::_construct'); } @@ -53,11 +53,15 @@ error_log('MailsSecondaryController::_construct'); * @NoAdminRequired * @PasswordConfirmationRequired */ - public function setProperty($id, $key, $value) { -error_log("MailsSecondaryController::setProperty: id=$id, key=$key, value=$value, "); + public function setProperty($key, $value) { if (in_array($key, array('emailUsePrimary', 'emailUseSecondary', 'email2'))) { - $this->config->setUserValue($id, 'settings', $key, $value); + if ($key === 'email2' && $value == "") { + $this->config->deleteUserValue($this->user, 'settings', $key); + } else { + $this->config->setUserValue($this->user, 'settings', $key, $value); + } } + return new DataResponse(true); } /** diff --git a/templates/settings/personal.php b/templates/settings/personal.php index dd423ba..83185e4 100644 --- a/templates/settings/personal.php +++ b/templates/settings/personal.php @@ -30,7 +30,7 @@ script('secondarymail', 'script'); <form id="secondarymailform" class="section"> <h3><label for="secondarymail"><?php p($l->t('Secondary E-Mail Address')); ?></label></h3> <p> - <input type="text" id="secondarymail" name="secondarymail" data-setting="secondaryMail" + <input type="text" id="secondarymail" name="secondarymail" data-setting="email2" value="<?php p($_['secondaryMail']) ?>" autocomplete="on" autocapitalize="none" autocorrect="off" /> </p> @@ -39,11 +39,11 @@ script('secondarymail', 'script'); <p/> <p> <?php p($l->t('Preferred E-Mail for external communication:')); ?> - <input type="checkbox" name="secondarymail_use1" id="secondaryMailUse1" data-setting="usePrimary" class="checkbox" - <?php ($_['use_primary_mail'] === 1) ? print_unescaped('checked="checked"') : null ?>/> + <input type="checkbox" name="secondarymail_use1" id="secondaryMailUse1" data-setting="emailUsePrimary" class="checkbox" + <?php ($_['use_primary_mail'] === "true") ? print_unescaped('checked="checked"') : null ?>/> <label for="secondaryMailUse1"><?php p($l->t('Primary')); ?></label> - <input type="checkbox" name="secondarymail_use2" id="secondaryMailUse2" data-setting="useSecondary" class="checkbox" - <?php ($_['use_secondary_mail'] === 1) ? print_unescaped('checked="checked"') : null ?>/> + <input type="checkbox" name="secondarymail_use2" id="secondaryMailUse2" data-setting="emailUseSecondary" class="checkbox" + <?php ($_['use_secondary_mail'] === "true") ? print_unescaped('checked="checked"') : null ?>/> <label for="secondaryMailUse2"><?php p($l->t('Secondary')); ?></label> </p> </form> -- GitLab