X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fpoche%2FPoche.class.php;h=4b85d52fb3d23c2868ce57f57bd8c0308400bcdf;hb=refs%2Ftags%2F1.9beta2;hp=d096de9148a3c1f2ee0422a1f3098df70e625a3d;hpb=28c42eb1d83856d014a74fe0370d6d0a7a892580;p=github%2Fwallabag%2Fwallabag.git diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index d096de91..4b85d52f 100755 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -74,16 +74,57 @@ class Poche /** * Creates a new user */ - public function createNewUser($username, $password, $email = "") + public function createNewUser($username, $password, $email = "", $internalRegistration = false) { + Tools::logm('Trying to create a new user...'); 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'); + if ($email != "") { // if email is filled + if (SEND_CONFIRMATION_EMAIL && function_exists('mail')) { + + // if internal registration from config screen + $body_internal = _('Hi,') . "\r\n\r\n" . sprintf(_('Someone just created a wallabag account for you on %1$s.'), Tools::getPocheUrl()) . + "\r\n\r\n" . sprintf(_('Your login is %1$s.'), $newUsername) ."\r\n\r\n" . + _('Note : The password has been chosen by the person who created your account. Get in touch with that person to know your password and change it as soon as possible') . "\r\n\r\n" . + _('Have fun with it !') . "\r\n\r\n" . + _('This is an automatically generated message, no one will answer if you respond to it.'); + + // if external (public) registration + $body = sprintf(_('Hi, %1$s'), $newUsername) . "\r\n\r\n" . + sprintf(_('You\'ve just created a wallabag account on %1$s.'), Tools::getPocheUrl()) . + "\r\n\r\n" . _("Have 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 %1$s'), Tools::getPocheUrl()), $body, + 'X-Mailer: PHP/' . phpversion() . "\r\n" . + 'Content-type: text/plain; charset=UTF-8' . "\r\n" . + "From: " . $newUsername . "@" . gethostname() . "\r\n")) { + 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. You may have to check spam folder.'), $newUsername, $email)); + Tools::redirect('?'); + + } 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 a confirmation email, but the user was created.')); + } + } else { + Tools::logm('The user has been created, but no email was saved, so no confimation email was sent'); + $this->messages->add('i', _('The user was created, but no email was sent because email was not filled in')); + } + Tools::logm('The new user ' . $newUsername . ' has been installed'); + if (\Session::isLogged()) { $this->messages->add('s', sprintf(_('The new user %s has been installed. Do you want to logout ?'), $newUsername)); - Tools::redirect(); + } + Tools::redirect(); } else { Tools::logm('error during adding new user'); @@ -96,6 +137,9 @@ class Poche Tools::redirect(); } } + else { + Tools::logm('Password or username were empty'); + } } /** @@ -349,13 +393,12 @@ class Poche /* For some unknown reason I can't get displayView() to work here (it redirects to home view afterwards). So here's a dirty fix which redirects directly to URL */ case 'random': - $id = 0; - while ($this->store->retrieveOneById($id,$this->user->getId()) == null) { - $count = $this->store->getEntriesByViewCount($view, $this->user->getId()); - $id = rand(1,$count); - } + $count = $this->store->getEntriesByViewCount($view, $this->user->getId()); + $id_query = $this->store->getRandomId(rand(1,$count)-1, $this->user->getId()); + $id = $id_query[0]; Tools::logm('get a random article'); - Tools::redirect('?view=view&id=' . $id); + Tools::redirect('?view=view&id=' . $id[0]); + //$this->displayView('view', $id); break; default: