aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-01-27 12:51:48 -0800
committerzotlabs <mike@macgirvin.com>2018-01-27 12:51:48 -0800
commitbd0f63980ba0d0e606f2dd7a65313f7e150d330a (patch)
tree84ae4193d37d9182f4a90ff8be038e922e6ecf28
parent4eead1c688f57bdf04091675fa38c5eed9f6acde (diff)
downloadvolse-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.php48
-rw-r--r--Zotlabs/Module/Email_validation.php38
-rw-r--r--Zotlabs/Module/Register.php6
-rw-r--r--view/tpl/email_validation.tpl16
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>
+