diff options
author | zotlabs <mike@macgirvin.com> | 2018-01-27 12:51:48 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2018-01-27 12:51:48 -0800 |
commit | bd0f63980ba0d0e606f2dd7a65313f7e150d330a (patch) | |
tree | 84ae4193d37d9182f4a90ff8be038e922e6ecf28 | |
parent | 4eead1c688f57bdf04091675fa38c5eed9f6acde (diff) | |
download | volse-hubzilla-bd0f63980ba0d0e606f2dd7a65313f7e150d330a.tar.gz volse-hubzilla-bd0f63980ba0d0e606f2dd7a65313f7e150d330a.tar.bz2 volse-hubzilla-bd0f63980ba0d0e606f2dd7a65313f7e150d330a.zip |
Usability improvements to registration/verification workflow. This requires additional testing.
-rw-r--r-- | Zotlabs/Module/Email_resend.php | 48 | ||||
-rw-r--r-- | Zotlabs/Module/Email_validation.php | 38 | ||||
-rw-r--r-- | Zotlabs/Module/Register.php | 6 | ||||
-rw-r--r-- | view/tpl/email_validation.tpl | 16 |
4 files changed, 106 insertions, 2 deletions
diff --git a/Zotlabs/Module/Email_resend.php b/Zotlabs/Module/Email_resend.php new file mode 100644 index 000000000..367593b55 --- /dev/null +++ b/Zotlabs/Module/Email_resend.php @@ -0,0 +1,48 @@ +<?php + +namespace Zotlabs\Module; + + +class Email_resend extends \Zotlabs\Web\Controller { + + function post() { + + + + if($_POST['token']) { + if(! account_approve(trim($_POST['token']))) { + notice('Token verification failed.') + } + } + + } + + + function get() { + + if(argc() > 1) { + $result = false; + $email = hex2bin(argv(1)); + + if($email) { + $result = verify_email_address( [ 'resend' => true, 'email' => $email ] ); + } + + if($result) { + notice(t('Email verification resent')); + } + else { + notice(t('Unable to resend email verification message.')); + } + + return; + + } + + // @todo - one can provide a form here to resend the mail + // after directing to here if a succesful login was attempted from an unverified address. + + + } + +}
\ No newline at end of file diff --git a/Zotlabs/Module/Email_validation.php b/Zotlabs/Module/Email_validation.php new file mode 100644 index 000000000..4cc016847 --- /dev/null +++ b/Zotlabs/Module/Email_validation.php @@ -0,0 +1,38 @@ +<?php + +namespace Zotlabs\Module; + + +class Email_validation extends \Zotlabs\Web\Controller { + + function post() { + + if($_POST['token']) { + if(! account_approve(trim($_POST['token']))) { + notice('Token verification failed.'); + } + } + + } + + + function get() { + + if(argc() > 1) { + $email = hex2bin(argv(1)); + } + + $o = replace_macros(get_markup_template('email_validation.tpl'), [ + '$title' => t('Email Verification Required'), + '$desc' => sprintf( t('A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message.'),$email), + '$resend' => t('Resend Email'), + '$email' => bin2hex($email), + '$submit' => t('Submit'), + '$token' => [ 'token', t('Validation token'),'','' ], + ]); + + return $o; + + } + +}
\ No newline at end of file diff --git a/Zotlabs/Module/Register.php b/Zotlabs/Module/Register.php index 1cb3bab91..c7fa1cee8 100644 --- a/Zotlabs/Module/Register.php +++ b/Zotlabs/Module/Register.php @@ -150,9 +150,11 @@ class Register extends \Zotlabs\Web\Controller { } if($email_verify) { - goaway(z_root()); + goaway(z_root() . '/email_validation/' . bin2hex($result['email'])); } - + + // fall through and authenticate if no approvals or verifications were required. + authenticate_success($result['account'],null,true,false,true); $new_channel = false; diff --git a/view/tpl/email_validation.tpl b/view/tpl/email_validation.tpl new file mode 100644 index 000000000..f049a040f --- /dev/null +++ b/view/tpl/email_validation.tpl @@ -0,0 +1,16 @@ +<h2>{{$title}}</h2> + +<div class="descriptive-paragraph" style="font-size: 1.2em;"><p>{{$desc}}</p></div> + +<form action="email_validation" method="post"> +{{include file="field_input.tpl" field=$token}} + +<div class="pull-right"> + <a href="email_resend/{{$email}}" class="btn btn-warning">{{$resend}}</a> +</div> +<div class="submit-wrapper" > + <button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button> +</div> +</form> +<div class="clear"></div> + |