Usability improvements to registration/verification workflow. This requires additional testing.
This commit is contained in:
		
							
								
								
									
										48
									
								
								Zotlabs/Module/Email_resend.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								Zotlabs/Module/Email_resend.php
									
									
									
									
									
										Normal file
									
								
							| @@ -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. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								Zotlabs/Module/Email_validation.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								Zotlabs/Module/Email_validation.php
									
									
									
									
									
										Normal file
									
								
							| @@ -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; | ||||||
|  |  | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -150,9 +150,11 @@ class Register extends \Zotlabs\Web\Controller { | |||||||
| 		} | 		} | ||||||
| 	 | 	 | ||||||
| 		if($email_verify) { | 		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); | 		authenticate_success($result['account'],null,true,false,true); | ||||||
| 		 | 		 | ||||||
| 		$new_channel = false; | 		$new_channel = false; | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								view/tpl/email_validation.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								view/tpl/email_validation.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -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> | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user