Commit dcb5c9a7 by Nilu

HT016 password confirmation on email address change. verification email sent.…

HT016 password confirmation on email address change. verification email sent. Link to resend verification email
parent 1594d4a6
package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.objstore.StorageException;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.InitialisationException;
import performa.orm.CompanyUser;
import performa.utils.Utils;
public class ResendVerificationFP extends SaveFP
{
protected ConfigurableArticleTemplateEmailer emailer;
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
HttpServletRequest request = submission.getRequest();
String nextPage = (String) request.getAttribute("nextPage");
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1, "Inside ResendVerificationFP resending verification email to company user : ", companyUser);
if(companyUser != null)
{
Utils.sendVerificationMail(companyUser, request, emailer, ResendVerificationFP.class.getName());
}
process.completeAndRestart();
return super.processForm(process, submission, params);
}
@Override
public void init(ParticipantInitialisationContext context) throws InitialisationException
{
super.init(context);
emailer = (ConfigurableArticleTemplateEmailer) (context.getSingleChild("AccountVerificationEmailer"));
}
}
\ No newline at end of file
......@@ -2,23 +2,30 @@ package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser;
import oneit.servlets.forms.RedisplayResult;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.InitialisationException;
import oneit.utils.MultiException;
import oneit.utils.StringUtils;
import performa.orm.CompanyUser;
import performa.utils.Utils;
public class SaveUserDetailsFP extends SaveFP
{
protected ConfigurableArticleTemplateEmailer emailer;
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
......@@ -28,9 +35,34 @@ public class SaveUserDetailsFP extends SaveFP
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1,"In SaveUserDetailsFP saving CompanyUser : ", companyUser );
if(companyUser.getConfirmPassword() != null)
SecUser oldSecUser = (SecUser) secUser.getEarliestBackup();
if(oldSecUser != null && !oldSecUser.getUserName().equals(secUser.getUserName()))
{
secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getConfirmPassword());
if(companyUser.getConfirmPassword() == null)
{
submission.getRequest().setAttribute("EmailChanged", true);
return RedisplayResult.getInstance();
}
else
{
boolean validPassword = secUser.checkPassword(companyUser.getConfirmPassword());
if(!validPassword)
{
submission.getRequest().setAttribute("EmailChanged", false);
companyUser.setConfirmPassword(null);
}
BusinessObjectParser.assertFieldCondition(validPassword, companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch");
if(validPassword)
{
companyUser.setIsAccountVerified(Boolean.FALSE);
Utils.sendVerificationMail(companyUser, request, emailer, SaveUserDetailsFP.class.getName());
}
}
}
return super.processForm(process, submission, params);
......@@ -47,8 +79,16 @@ public class SaveUserDetailsFP extends SaveFP
BusinessObjectParser.assertFieldCondition(StringUtils.isEmailAddress(secUser.getUserName()), secUser, SecUser.FIELD_Email, "invalid", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(secUser.getFirstName()!= null, secUser, SecUser.FIELD_FirstName, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(secUser.getLastName()!= null, secUser, SecUser.FIELD_LastName, "mandatory", exceptions, true, request);
// BusinessObjectParser.assertFieldCondition(CollectionUtils.equals(companyUser.getPassword(), companyUser.getConfirmPassword()), companyUser, Job.FIELD_ConfirmPassword, "passwordNotMatch", exceptions, true, request);
return super.validate(submission, exceptions);
}
@Override
public void init(ParticipantInitialisationContext context) throws InitialisationException
{
super.init(context);
emailer = (ConfigurableArticleTemplateEmailer) (context.getSingleChild("AccountVerificationEmailer"));
}
}
\ No newline at end of file
......@@ -12,7 +12,6 @@ import oneit.net.LoopbackHTTP;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.security.SecUser;
import oneit.servlets.forms.*;
import oneit.servlets.process.*;
......@@ -101,7 +100,7 @@ public class SendVerificationMailFP extends SaveFP
//set default to admin
companyUser.setRole(RoleType.ADMIN);
sendVerificationMail(companyUser, request);
Utils.sendVerificationMail(companyUser, request, emailer, SendVerificationMailFP.class.getName());
LogMgr.log(LOG, LogLevel.PROCESSING1, "End of sending varification email.", companyUser);
}
......@@ -196,44 +195,4 @@ public class SendVerificationMailFP extends SaveFP
LogMgr.log(LOG, LogLevel.PROCESSING1, "Call from " + SendVerificationMailFP.class + ". Account is already verified for candidate :: ", candidate);
}
}
protected void sendVerificationMail(CompanyUser companyUser, HttpServletRequest request) throws BusinessException
{
if(companyUser.getIsAccountVerified()!=Boolean.TRUE)
{
try
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "Sending verification mail from SendVerificationMailFP to :: ", companyUser);
Article verificationArticle = WebUtils.getArticleByShortCut(companyUser.getTransaction(), WebUtils.COMPANY_ACCOUNT_VERIFICATION);
RandomStringGen random = new RandomStringGen();
//set verification key and send mail time
companyUser.setVerificationKey(random.generateAlphaNum(6));
companyUser.setVerificationMailSendDate(new Date());
String link = LoopbackHTTP.getRemoteAccessURL(request)
+ verificationArticle.getLink(request, CollectionUtils.EMPTY_MAP, "/")
+ "?id=" + companyUser.getID()
+ "&key=" + companyUser.getVerificationKey();
Map defaultParams = CollectionUtils.mapEntry("link", link).toMap();
ObjectTransform transform = Utils.createCompoundTransform(defaultParams, companyUser);
Utils.sendMail(emailer, transform, new String[]{companyUser.getUser().getEmail()}, null, companyUser);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Sent verification mail successfully from " + SendVerificationMailFP.class + " to :: ", companyUser);
}
catch (ConfigurableEmailerException ex)
{
LogMgr.log(LOG, LogLevel.SYSTEMERROR1, ex, "Error occured while sending mail for Candidate :: " + companyUser);
throw new BusinessException("We are unable to send mail. Please try again or contact Talentology for more details.");
}
}
else
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "Call from " + SendVerificationMailFP.class + ". Account is already verified for candidate :: ", companyUser);
}
}
}
\ No newline at end of file
......@@ -4,11 +4,13 @@ import java.util.*;
import javax.activation.DataSource;
import javax.servlet.http.*;
import oneit.appservices.config.ConfigMgr;
import oneit.business.content.Article;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.email.ConfigurableEmailerException;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.net.LoopbackHTTP;
import oneit.objstore.BaseBusinessClass;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter;
......@@ -401,6 +403,46 @@ public class Utils
return secUser;
}
public static void sendVerificationMail(CompanyUser companyUser, HttpServletRequest request, ConfigurableArticleTemplateEmailer emailer, String callingClass) throws BusinessException
{
if(!CollectionUtils.equals(companyUser.getIsAccountVerified(), Boolean.TRUE))
{
try
{
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1, "Sending verification mail from " + callingClass + " to :: ", companyUser);
Article verificationArticle = WebUtils.getArticleByShortCut(companyUser.getTransaction(), WebUtils.COMPANY_ACCOUNT_VERIFICATION);
RandomStringGen random = new RandomStringGen();
//set verification key and send mail time
companyUser.setVerificationKey(random.generateAlphaNum(6));
companyUser.setVerificationMailSendDate(new Date());
String link = LoopbackHTTP.getRemoteAccessURL(request)
+ verificationArticle.getLink(request, CollectionUtils.EMPTY_MAP, "/")
+ "?id=" + companyUser.getID()
+ "&key=" + companyUser.getVerificationKey();
Map defaultParams = CollectionUtils.mapEntry("link", link).toMap();
ObjectTransform transform = Utils.createCompoundTransform(defaultParams, companyUser);
Utils.sendMail(emailer, transform, new String[]{companyUser.getUser().getEmail()}, null, companyUser);
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1, "Sent verification mail successfully from " + callingClass + " to :: ", companyUser);
}
catch (ConfigurableEmailerException ex)
{
LogMgr.log(CompanyUser.LOG, LogLevel.SYSTEMERROR1, ex, "Error occured while sending mail for Candidate :: " + companyUser);
throw new BusinessException("We are unable to send mail. Please try again or contact Talentology for more details.");
}
}
else
{
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1, "Call from " + callingClass + ". Account is already verified for candidate :: ", companyUser);
}
}
}
......
......@@ -5301,6 +5301,70 @@ label, label .label-title span {
/*My Company Pages End*/
/*My Details Pages*/
.notification-popup{
border-radius: 2px;
background-color: #ffffff;
box-shadow: 0 0 30px 5px rgba(0, 0, 0, 0.2);
border: 1px solid #e8e8eb;
border-top: 5px solid #f6a623;
width: 300px;
margin: 0 auto;
text-align: center;
padding: 0;
padding: 15px;
}
.notification-popup h2{
font-size: 24px;
color: #f6a623;
margin: 38px 0 22px;
}
.notification-popup p {
font-size: 15px;
font-weight: 300;
line-height: 1.53;
text-align: center;
color: #4a4a4a;
padding: 0 28px;
font-family: "Usual-Light";
}
.save-my-details{
width: 100%;
padding: 27px 0;
}
.save-my-details-btn{
border-radius: 100px;
min-width: 120px;
padding: 13px 0;
}
.btn.btn-primary.btn-orange{
background-color: #f5a623;
border-color: #f5a623;
}
.btn.btn-primary.btn-orange:hover{
background-color: #f5a623;
border-color: #f5a623;
}
.close-popup-btn{
float: right;
}
.email-verify{
text-align:right;
font-size: 12px;
margin-bottom: 25px;
width:100%;
margin-top:5px;
}
.email-verify-link
{
color: #03a0e7;
text-decoration: underline;
}
/*My Details Pages End*/
.hire-the-right-candi {
height: 75px;
font-family: Usual-Medium;
......
......@@ -43,7 +43,12 @@
<AccountCreatedEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="AccountCreatedMail"/>
<InvitationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="InvitationMail"/>
</FORM>
<FORM name="*.saveUserDetails" factory="Participant" class="performa.form.SaveUserDetailsFP"/>
<FORM name="*.saveUserDetails" factory="Participant" class="performa.form.SaveUserDetailsFP">
<AccountVerificationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="CompanyAccountVerificationMail"/>
</FORM>
<FORM name="*.resendVerification" factory="Participant" class="performa.form.ResendVerificationFP">
<AccountVerificationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="CompanyAccountVerificationMail"/>
</FORM>
<FORM name="*.saveClient" factory="Participant" class="performa.form.SaveClientFP"/>
<FORM name="*.saveCompany" factory="Participant" class="performa.form.SaveCompanyFP"/>
</NODE>
......
......@@ -36,15 +36,16 @@
<div class="my-company-area">
<oneit:form name="editCompany" method="post" enctype="multipart/form-data">
<div style="padding-left: 15px; padding-right: 15px;">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
</div>
<oneit:dynInclude page="/extensions/adminportal/inc/my_company_tabs.jsp" TabNumber="1" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="company-content-area">
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="company-detail">
<div style="padding-left: 15px; padding-right: 15px;">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
</div>
<div class="tabpage-title">
<label class="label-16">Company Details</label>
</div>
......
......@@ -18,19 +18,18 @@
String homePage = WebUtils.getSamePageInRenderMode(request, "Page");
String jobsPage = jobsArticle.getLink(request, CollectionUtils.mapEntry("cms.rm", "Page").toMap());
boolean showModal = request.getParameter("showModal") != null ? Boolean.parseBoolean(request.getParameter("showModal")) : false;
if(showModal)
{
%>
<script>
$(document).ready(function(){
$('#welcomepopup').modal('show');
});
</script>
<%
}
%>
<%
if(showModal)
{
%>
<script>
$(document).ready(function(){
$('#welcomepopup').modal('show');
});
</script>
<%
}
%>
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="dashboard-content-area">
<div class="dashboard-first-part">
......
<?xml version="1.0" encoding="UTF-8"?>
<svg width="13px" height="13px" viewBox="0 0 13 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: sketchtool 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
<title>B0DE6AE9-7EA8-49E0-8EC2-EBF60DA473EC</title>
<desc>Created with sketchtool.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="My-Details-HT016-1" transform="translate(-1056.000000, -444.000000)" fill="#F5A623">
<g id="Modal---Success" transform="translate(780.000000, 427.000000)">
<path d="M281.698324,22.6983239 L274.313708,22.6983239 L274.313708,23.9290931 L281.698324,23.9290931 L281.698324,31.3137085 L282.929093,31.3137085 L282.929093,23.9290931 L290.313708,23.9290931 L290.313708,22.6983239 L282.929093,22.6983239 L282.929093,15.3137085 L281.698324,15.3137085 L281.698324,22.6983239 Z" id="Combined-Shape" transform="translate(282.313708, 23.313708) rotate(-315.000000) translate(-282.313708, -23.313708) "></path>
</g>
</g>
</g>
</svg>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment