protected function create() { $params = arrayKeysSnakeToCamel($_POST['user']); $user = new User(); $user->fromArray($params); $user->save(); $this->addFlash("success", "registered"); redirectTo("/"); }
protected function create() { if (isset($_POST["email"]) && isset($_POST["username"]) && isset($_POST["password"])) { $user = new User(); $emailConfirmToken = uniqid() . generateRandomString(19); $user->fromArray(array("Email" => $_POST["email"], "Username" => $_POST["username"], "Password" => $_POST["password"], "EmailConfirmToken" => $emailConfirmToken)); if (!$user->save()) { $failures = $user->getValidationFailures(); if (count($failures) > 0) { foreach ($failures as $failure) { $this->sendFlashMessage("You have not been signed up. " . $failure->getMessage(), "error"); } } } else { $this->sendFlashMessage('You have been successfuly signed up. Please confirm your email address, we have send confirmation link. <a class="link" href="/user/' . $user->getUsername() . '/send-email-confirm-email">Send new email confirm link?</a>', "success"); $body = '<p>You have created new account on Starling.</p><br /><p>Please virify your email address by clicking this url:</p><a href="' . $this->siteURL . '/user/' . $user->getUsername() . '/email-confirm/' . urlencode($emailConfirmToken) . '">' . $this->siteURL . '/user/' . $user->getUsername() . '/email-confirm/' . urlencode($emailConfirmToken) . '</a>'; $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername($this->emailAddress)->setPassword($this->emailPassword); $mailer = \Swift_Mailer::newInstance($transport); $message = \Swift_Message::newInstance()->setSubject('Email verification')->setFrom(array($this->emailAddress => 'Starling admin'))->setTo(array($user->getEmail() => $user->getUsername()))->setBody($body, 'text/html'); $result = $mailer->send($message); } $this->redirect("/"); } else { setHTTPStatusCode("400"); } }