summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-02-19 18:55:27 +0100
committerLukas Reschke <lukas@owncloud.com>2015-03-16 12:47:05 +0100
commitf92f3a1a6ecbce06fbe24204ef12b2eeeb0f0d15 (patch)
treedca224d1136cae6d5a971cd110a0591ce0d8d1ef
parent283476a2f7c200912352eb4db097f540e3993e75 (diff)
downloadnextcloud-server-f92f3a1a6ecbce06fbe24204ef12b2eeeb0f0d15.tar.gz
nextcloud-server-f92f3a1a6ecbce06fbe24204ef12b2eeeb0f0d15.zip
Incorporate review changes
-rw-r--r--lib/private/mail/mailer.php30
-rw-r--r--lib/private/mail/util.php45
-rw-r--r--lib/public/mail/imailer.php8
-rw-r--r--lib/public/mail/util.php26
-rw-r--r--lib/public/util.php3
-rw-r--r--settings/controller/userscontroller.php5
-rw-r--r--tests/lib/mail/mailer.php23
-rw-r--r--tests/lib/mail/util.php39
8 files changed, 63 insertions, 116 deletions
diff --git a/lib/private/mail/mailer.php b/lib/private/mail/mailer.php
index ff4b0a0ef62..92e6b91ce1c 100644
--- a/lib/private/mail/mailer.php
+++ b/lib/private/mail/mailer.php
@@ -1,6 +1,6 @@
<?php
/**
- * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
+ * Copyright (c) 2014-2015 Lukas Reschke <lukas@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
@@ -78,6 +78,34 @@ class Mailer implements IMailer {
}
/**
+ * Checks if an e-mail address is valid
+ *
+ * @param string $email Email address to be validated
+ * @return bool True if the mail address is valid, false otherwise
+ */
+ public function validateMailAddress($email) {
+ return \Swift_Validate::email($this->convertEmail($email));
+ }
+
+ /**
+ * SwiftMailer does currently not work with IDN domains, this function therefore converts the domains
+ *
+ * FIXME: Remove this once SwiftMailer supports IDN
+ *
+ * @param string $email
+ * @return string Converted mail address if `idn_to_ascii` exists
+ */
+ protected function convertEmail($email) {
+ if (!function_exists('idn_to_ascii') || strpos($email, '@') === false) {
+ return $email;
+ }
+
+ list($name, $domain) = explode('@', $email, 2);
+ $domain = idn_to_ascii($domain);
+ return $name.'@'.$domain;
+ }
+
+ /**
* Returns whatever transport is configured within the config
*
* @return \Swift_SmtpTransport|\Swift_SendmailTransport|\Swift_MailTransport
diff --git a/lib/private/mail/util.php b/lib/private/mail/util.php
deleted file mode 100644
index b301e79d492..00000000000
--- a/lib/private/mail/util.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * Copyright (c) 2014-2015 Lukas Reschke <lukas@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OC\Mail;
-
-/**
- * Class Util
- *
- * @package OC\Mail
- */
-class Util {
- /**
- * Checks if an e-mail address is valid
- *
- * @param string $email Email address to be validated
- * @return bool True if the mail address is valid, false otherwise
- */
- public static function validateMailAddress($email) {
- return \Swift_Validate::email(self::convertEmail($email));
- }
-
- /**
- * SwiftMailer does currently not work with IDN domains, this function therefore converts the domains
- *
- * FIXME: Remove this once SwiftMailer supports IDN
- *
- * @param string $email
- * @return string Converted mail address if `idn_to_ascii` exists
- */
- protected static function convertEmail($email) {
- if (!function_exists('idn_to_ascii') || strpos($email, '@') === false) {
- return $email;
- }
-
- list($name, $domain) = explode('@', $email, 2);
- $domain = idn_to_ascii($domain);
- return $name.'@'.$domain;
- }
-
-}
diff --git a/lib/public/mail/imailer.php b/lib/public/mail/imailer.php
index 2a20ead612b..dc6fe5ba869 100644
--- a/lib/public/mail/imailer.php
+++ b/lib/public/mail/imailer.php
@@ -46,4 +46,12 @@ interface IMailer {
* has been supplied.)
*/
public function send(Message $message);
+
+ /**
+ * Checks if an e-mail address is valid
+ *
+ * @param string $email Email address to be validated
+ * @return bool True if the mail address is valid, false otherwise
+ */
+ public function validateMailAddress($email);
}
diff --git a/lib/public/mail/util.php b/lib/public/mail/util.php
deleted file mode 100644
index ea59649e620..00000000000
--- a/lib/public/mail/util.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OCP\Mail;
-
-/**
- * Class Util provides some helpers for mail addresses
- *
- * @package OCP\Mail
- */
-class Util {
- /**
- * Checks if an e-mail address is valid
- *
- * @param string $email Email address to be validated
- * @return bool True if the mail address is valid, false otherwise
- */
- public static function validateMailAddress($email) {
- return \OC\Mail\Util::validateMailAddress($email);
- }
-}
diff --git a/lib/public/util.php b/lib/public/util.php
index 71ab8cabce5..338c216f255 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -294,7 +294,8 @@ class Util {
$host_name = \OC_Config::getValue('mail_domain', $host_name);
$defaultEmailAddress = $user_part.'@'.$host_name;
- if (\OCP\Mail\Util::validateMailAddress($defaultEmailAddress)) {
+ $mailer = \OC::$server->getMailer();
+ if ($mailer->validateMailAddress($defaultEmailAddress)) {
return $defaultEmailAddress;
}
diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php
index 507e57ef940..11afe514016 100644
--- a/settings/controller/userscontroller.php
+++ b/settings/controller/userscontroller.php
@@ -263,8 +263,7 @@ class UsersController extends Controller {
* @return DataResponse
*/
public function create($username, $password, array $groups=array(), $email='') {
-
- if($email !== '' && !\OCP\Mail\Util::validateMailAddress($email)) {
+ if($email !== '' && !$this->mailer->validateMailAddress($email)) {
return new DataResponse(
array(
'message' => (string)$this->l10n->t('Invalid mail address')
@@ -443,7 +442,7 @@ class UsersController extends Controller {
);
}
- if($mailAddress !== '' && ! \OCP\Mail\Util::validateMailAddress($mailAddress)) {
+ if($mailAddress !== '' && !$this->mailer->validateMailAddress($mailAddress)) {
return new DataResponse(
array(
'status' => 'error',
diff --git a/tests/lib/mail/mailer.php b/tests/lib/mail/mailer.php
index bd410dd3383..2cb4c5cfde3 100644
--- a/tests/lib/mail/mailer.php
+++ b/tests/lib/mail/mailer.php
@@ -1,6 +1,6 @@
<?php
/**
- * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
+ * Copyright (c) 2014-2015 Lukas Reschke <lukas@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
@@ -115,4 +115,25 @@ class MailerTest extends TestCase {
$this->mailer->send($message);
}
+ /**
+ * @return array
+ */
+ public function mailAddressProvider() {
+ return [
+ ['lukas@owncloud.com', true],
+ ['lukas@localhost', true],
+ ['lukas@192.168.1.1', true],
+ ['lukas@éxämplè.com', true],
+ ['asdf', false],
+ ['lukas@owncloud.org@owncloud.com', false],
+ ];
+ }
+
+ /**
+ * @dataProvider mailAddressProvider
+ */
+ public function testValidateMailAddress($email, $expected) {
+ $this->assertSame($expected, $this->mailer->validateMailAddress($email));
+ }
+
}
diff --git a/tests/lib/mail/util.php b/tests/lib/mail/util.php
deleted file mode 100644
index 04d9d5df256..00000000000
--- a/tests/lib/mail/util.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/**
- * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace Test;
-use OCP\Mail\Util;
-
-/**
- * Class Util
- *
- * @package OC\Mail
- */
-class UtilTest extends TestCase {
-
- /**
- * @return array
- */
- public function mailAddressProvider() {
- return array(
- array('lukas@owncloud.com', true),
- array('lukas@localhost', true),
- array('lukas@192.168.1.1', true),
- array('lukas@éxämplè.com', true),
- array('asdf', false),
- array('lukas@owncloud.org@owncloud.com', false)
- );
- }
-
- /**
- * @dataProvider mailAddressProvider
- */
- public function testValidateMailAddress($email, $expected) {
- $this->assertSame($expected, Util::validateMailAddress($email));
- }
-}