Commit 3ee98dc9 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Implement OCS endpoint for querying

parent 0ed88e13
......@@ -10,6 +10,10 @@
return [
'routes' => [
['name' => 'SecondaryMail#setProperty', 'url' => '/settings', 'verb' => 'POST'],
],
'ocs' => [
['name' => 'SecondaryMail#getAddress', 'url' => '/getAddress/{id}', 'verb' => 'GET'],
['name' => 'SecondaryMail#setProperty', 'url' => '/settings', 'verb' => 'POST'],
]
];
{
"name": "OpenTools/Secondary_Mail",
"name": "opentools/secondary_mail",
"description": "Enter a secondary email and specify which e-Mail should be used for external communication",
"type": "project",
"license": "AGPL",
......
......@@ -20,6 +20,27 @@
'use strict';
(function(OCA) {
/**
* @namespace OCA.Secondary_Mail
*/
OCA.Secondary_Mail = {
_submitChange: function(target) {
if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this._submitChange, this, target));
return;
}
var url = OC.generateUrl('/apps/secondarymail/settings');
let key = target.data('setting'),
value = target.val();
if (target.attr('type') === 'checkbox') {
value = target[0].checked ? 'true' : 'false';
}
$.post(url, {key, value});
return true;
}
}
})(OCA);
(function () {
function initialize() {
......@@ -33,6 +54,14 @@
}
function _submitChange(e) {
return OCA.Secondary_Mail._submitChange($(e.target));
}
function _submitChangeOLD(e) {
if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(_submitChange, e));
return;
}
var url = OC.generateUrl('/apps/secondarymail/settings');
let target = $(e.target),
key = target.data('setting'),
......@@ -47,3 +76,4 @@
initialize();
})();
......@@ -46,7 +46,6 @@ class SecondaryMailController extends OCSController {
$this->config = $config;
$this->userManager = $userManager;
$this->user = $userSession->getUser()->getUID();
error_log('MailsSecondaryController::_construct');
}
/**
......@@ -55,7 +54,7 @@ error_log('MailsSecondaryController::_construct');
*/
public function setProperty($key, $value) {
if (in_array($key, array('emailUsePrimary', 'emailUseSecondary', 'email2'))) {
if ($key === 'email2' && $value == "") {
if ($key === 'email2' && $value === "") {
$this->config->deleteUserValue($this->user, 'settings', $key);
} else {
$this->config->setUserValue($this->user, 'settings', $key, $value);
......@@ -70,18 +69,28 @@ error_log('MailsSecondaryController::_construct');
*/
public function getAddress($id) {
$mails = array();
$data = array();
if ($this->config->getUserValue($id, 'settings', 'emailUsePrimary')) {
$usePrimary = $this->config->getUserValue($id, 'settings', 'emailUsePrimary', 'true');
$data['usePrimary'] = $usePrimary;
if ($usePrimary === 'true' || $usePrimary === 1 || $usePrimary === "Y") {
$user = $this->userManager->get($id);
$email = $user->getEMailAddress();
if (!is_empty($email)) {
if (!empty($email)) {
$mails[] = $user->getEMailAddress();
}
}
if ($this->config->getUserValue($id, 'settings', 'emailUseSecondary')) {
$mails[] = $this->config->getUserValue($id, 'settings', 'email2');
$useSecondary = $this->config->getUserValue($id, 'settings', 'emailUseSecondary', 'true');
$data['useSecondary'] = $useSecondary;
if ($useSecondary === 'true' || $useSecondary === 1 || $useSecondary === "Y") {
$secondary = $this->config->getUserValue($id, 'settings', 'email2');
if (!empty($secondary)) {
$mails[] = $secondary;
}
}
return join(',',$mails);
$data['email'] = $mails;
return new DataResponse($data);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment