Copy over the old sendEmail controller
This commit is contained in:
parent
94cc528f8b
commit
d912c99473
|
|
@ -27,11 +27,46 @@ class RegistrationController extends Controller {
|
||||||
* @NoCSRFRequired
|
* @NoCSRFRequired
|
||||||
* @PublicPage
|
* @PublicPage
|
||||||
*/
|
*/
|
||||||
public function displayRegisterPage() {
|
public function displayRegisterPage($errormsg, $entered) {
|
||||||
$params = array(
|
$params = array(
|
||||||
'errormsg' => $this->request->getParam('errormsg'),
|
'errormsg' => $errormsg ? $errormsg : $this->request->getParam('errormsg'),
|
||||||
'entered' => $this->request->getParam('entered')
|
'entered' => $entered ? $entered : $this->request->getParam('entered')
|
||||||
);
|
);
|
||||||
return new TemplateResponse('registration', 'register', $params);
|
return new TemplateResponse('registration', 'register', $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @NoCSRFRequired
|
||||||
|
* @PublicPage
|
||||||
|
*/
|
||||||
|
public function sendEmail() {
|
||||||
|
// TODO: Check if user with this email already exists
|
||||||
|
|
||||||
|
if ( !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {
|
||||||
|
$this->displayRegisterPage($l->t('Email address you entered is not valid'), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FEATURE: allow only from specific email domain
|
||||||
|
|
||||||
|
$token = self::savePendingRegistration($_POST['email']);
|
||||||
|
if ( $token === false ) {
|
||||||
|
$this->displayRegisterPage($l->t('There is already a pending registration with this email'), true);
|
||||||
|
} elseif ( strlen($token) === 64 ) {
|
||||||
|
$link = OC_Helper::linkToRoute('core_registration_register_form',
|
||||||
|
array('token' => $token));
|
||||||
|
$link = OC_Helper::makeURLAbsolute($link);
|
||||||
|
$from = OCP\Util::getDefaultEmailAddress('register');
|
||||||
|
$tmpl = new OC_Template('core/registration', 'email');
|
||||||
|
$tmpl->assign('link', $link, false);
|
||||||
|
$msg = $tmpl->fetchPage();
|
||||||
|
try {
|
||||||
|
OC_Mail::send($_POST['email'], 'ownCloud User', $l->t('Verify your ownCloud registration request'), $msg, $from, 'ownCloud');
|
||||||
|
} catch (Exception $e) {
|
||||||
|
OC_Template::printErrorPage( 'A problem occurs during sending the e-mail please contact your administrator.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$this->displayRegisterPage('', true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue