]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
allow to send confirmation emails when creating a new user
authorThomas Citharel <tcit@tcit.fr>
Sat, 24 Jan 2015 14:09:18 +0000 (15:09 +0100)
committerThomas Citharel <tcit@tcit.fr>
Sat, 24 Jan 2015 14:09:18 +0000 (15:09 +0100)
inc/poche/Poche.class.php
inc/poche/Routing.class.php

index 81a18c8603b95af167876c943a02d6523c89d001..adb335c9ebb3168c4167de80ea414491559b7b9d 100755 (executable)
@@ -74,16 +74,35 @@ class Poche
     /**
      * Creates a new user
      */
-    public function createNewUser($username, $password, $email = "")
+    public function createNewUser($username, $password, $email = "", $internalRegistration = false)
     {
         if (!empty($username) && !empty($password)){
             $newUsername = filter_var($username, FILTER_SANITIZE_STRING);
             $email = filter_var($email, FILTER_SANITIZE_STRING);
             if (!$this->store->userExists($newUsername)){
                 if ($this->store->install($newUsername, Tools::encodeString($password . $newUsername), $email)) {
-                    Tools::logm('The new user ' . $newUsername . ' has been installed');
-                    $this->messages->add('s', sprintf(_('The new user %s has been installed. Do you want to <a href="?logout">logout ?</a>'), $newUsername));
-                    Tools::redirect();
+                    if (SEND_CONFIRMATION_EMAIL && function_exists('mail')) {
+                        // if internal registration
+                        $body_internal = "Hi,\r\n\r\nSomeone just created an account for you on " . Tools::getPocheUrl() . ".\r\nHave fun with it !";
+                        // if external (public) registration
+                        $body = "Hi, \r\n\r\nYou've just created an account on " . Tools::getPocheUrl() . . ".\r\nHave fun with it !";
+                        $body = $internalRegistration ? $body_internal : $body;
+                        $body = wordwrap($body, 70, "\r\n"); // cut lines with more than 70 caracters (MIME standard)
+                        if (mail($email, sprintf(_('Your new wallabag account on '), Tools::getPocheUrl()), $body, 'From: {$email}')) {
+                            Tools::logm('The user ' . $newUsername . ' has been emailed');
+                            $this->messages->add('i', sprintf(_('The new user %1$s has been sent an email at %2$s.'), $newUsername, $email));
+                            
+                        } else {
+                            Tools::logm('A problem has been encountered while sending an email');
+                            $this->messages->add('e', _('A problem has been encountered while sending an email');
+                        }
+                    } else {
+                        Tools::logm('The user has been created, but the server did not authorize sending emails');
+                        $this->messages->add('i', _('The server did not authorize sending an email');
+                    }
+                Tools::logm('The new user ' . $newUsername . ' has been installed');
+                $this->messages->add('s', sprintf(_('The new user %s has been installed. Do you want to <a href="?logout">logout ?</a>'), $newUsername));
+                Tools::redirect();
                 }
                 else {
                     Tools::logm('error during adding new user');
index a8d00b89806435ada989e973cbeefb736fbf4804..b8cab0ec339ce57f0147228c2e5f27da1baa344b 100755 (executable)
@@ -116,7 +116,7 @@ class Routing
                 // update password
                 $this->wallabag->updatePassword($_POST['password'], $_POST['password_repeat']);
             } elseif (isset($_GET['newuser'])) {
-                $this->wallabag->createNewUser($_POST['newusername'], $_POST['password4newuser'], $_POST['newuseremail']);
+                $this->wallabag->createNewUser($_POST['newusername'], $_POST['password4newuser'], $_POST['newuseremail'], true);
             } elseif (isset($_GET['deluser'])) {
                 $this->wallabag->deleteUser($_POST['password4deletinguser']);
             } elseif (isset($_GET['epub'])) {