Commit d704fc95 by chenith

Social login for Admin portal.

parent 5e7926f7
...@@ -62,19 +62,24 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor ...@@ -62,19 +62,24 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor
CompanyUser companyUser = company.getAddedByUser(); CompanyUser companyUser = company.getAddedByUser();
SecUser secUser = companyUser.getUser(); SecUser secUser = companyUser.getUser();
String nextPage = (String) request.getAttribute("nextPage"); String nextPage = (String) request.getAttribute("nextPage");
Boolean socialLogin = CollectionUtils.equals(process.getAttribute("socialLogin"), Boolean.TRUE);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing Company User", companyUser, secUser); LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing Company User", companyUser, secUser);
secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getPassword());
companyUser.setIsAccountVerified(Boolean.TRUE); companyUser.setIsAccountVerified(Boolean.TRUE);
company.setIsVerified(Boolean.TRUE); company.setIsVerified(Boolean.TRUE);
sendAccountCreatedMail(companyUser, request); sendAccountCreatedMail(companyUser, request);
if(!socialLogin)
{
secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getPassword());
request.getSession().setAttribute (SecUser.SEC_USER_ID, secUser); request.getSession().setAttribute (SecUser.SEC_USER_ID, secUser);
request.getSession().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE); request.getSession().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Password resetted", companyUser, secUser); LogMgr.log(LOG, LogLevel.PROCESSING1, "Password resetted", companyUser, secUser);
}
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing Company User finished", companyUser, secUser); LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing Company User finished", companyUser, secUser);
...@@ -84,11 +89,16 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor ...@@ -84,11 +89,16 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor
{ {
if(!CollectionUtils.equals(cUser, companyUser)) if(!CollectionUtils.equals(cUser, companyUser))
{ {
SecUser sUser = Utils.getSecUserForCompanyIfAvailable(cUser); Tuple.T2<SecUser, Boolean> userdata = Utils.getSecUserForCompanyIfAvailable(cUser);
SecUser sUser = userdata.get0();
LogMgr.log(LOG, LogLevel.PROCESSING1, "Started to send invitaion email.", cUser); LogMgr.log(LOG, LogLevel.PROCESSING1, "Started to send invitaion email.", cUser);
if(!userdata.get1()) //check user availablility
{
sUser.setUserName(sUser.getEmail().toLowerCase()); sUser.setUserName(sUser.getEmail().toLowerCase());
}
sUser.setAttribute("md5:" + SecUser.FIELD_Password, DEFAULT_PASSWORD); sUser.setAttribute("md5:" + SecUser.FIELD_Password, DEFAULT_PASSWORD);
sUser.addRole(Utils.getRole(Utils.ROLE_CLIENT, objTran)); sUser.addRole(Utils.getRole(Utils.ROLE_CLIENT, objTran));
......
...@@ -33,10 +33,20 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor ...@@ -33,10 +33,20 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor
{ {
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser"); CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
Boolean socialLogin = (Boolean) request.getAttribute("socialLogin");
SecUser secUser = companyUser.getUser(); SecUser secUser = companyUser.getUser();
Company company = companyUser.getCompany(); Company company = companyUser.getCompany();
if(socialLogin)
{
BusinessObjectParser.assertFieldCondition(secUser.getEmail()!=null, secUser, SecUser.FIELD_Email, "invalid", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.isCompanyUserEmailFound(secUser.getTransaction(), secUser.getEmail()), secUser, SecUser.FIELD_Email, "emailExists", exceptions, true, request);
}
else
{
BusinessObjectParser.assertFieldCondition(StringUtils.isEmailAddress(secUser.getUserName()), secUser, SecUser.FIELD_Email, "invalid", exceptions, true, request); 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.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(secUser.getLastName()!=null, secUser, SecUser.FIELD_LastName, "mandatory", exceptions, true, request);
...@@ -45,6 +55,8 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor ...@@ -45,6 +55,8 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor
BusinessObjectParser.assertFieldCondition(company.getCompanyName()!=null, company, Company.FIELD_CompanyName, "mandatory", exceptions, true, request); BusinessObjectParser.assertFieldCondition(company.getCompanyName()!=null, company, Company.FIELD_CompanyName, "mandatory", exceptions, true, request);
} }
if(!socialLogin)
{
BusinessObjectParser.assertFieldCondition(companyUser.getPassword()!= null, companyUser, CompanyUser.FIELD_Password, "mandatory", exceptions, true, request); BusinessObjectParser.assertFieldCondition(companyUser.getPassword()!= null, companyUser, CompanyUser.FIELD_Password, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(companyUser.getConfirmPassword()!= null, companyUser, CompanyUser.FIELD_ConfirmPassword, "mandatory", exceptions, true, request); BusinessObjectParser.assertFieldCondition(companyUser.getConfirmPassword()!= null, companyUser, CompanyUser.FIELD_ConfirmPassword, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(CollectionUtils.equals(companyUser.getPassword(), companyUser.getConfirmPassword()), companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch", exceptions, true, request); BusinessObjectParser.assertFieldCondition(CollectionUtils.equals(companyUser.getPassword(), companyUser.getConfirmPassword()), companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch", exceptions, true, request);
...@@ -68,6 +80,7 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor ...@@ -68,6 +80,7 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor
{ {
throw NestedException.wrap(e); throw NestedException.wrap(e);
} }
}
return super.validate(submission, exceptions); return super.validate(submission, exceptions);
} }
...@@ -81,6 +94,7 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor ...@@ -81,6 +94,7 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor
SecUser secUser = companyUser.getUser(); SecUser secUser = companyUser.getUser();
Company company = companyUser.getCompany(); Company company = companyUser.getCompany();
String nextPage = (String) request.getAttribute("nextPage"); String nextPage = (String) request.getAttribute("nextPage");
Boolean socialLogin = (Boolean) request.getAttribute("socialLogin");
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing User", companyUser, secUser); LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing User", companyUser, secUser);
...@@ -89,6 +103,7 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor ...@@ -89,6 +103,7 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor
if(company.getIsVerified()!=Boolean.TRUE && CollectionUtils.equals(company.getAddedByUser(), companyUser)) if(company.getIsVerified()!=Boolean.TRUE && CollectionUtils.equals(company.getAddedByUser(), companyUser))
{ {
process.setAttribute("Company", company); process.setAttribute("Company", company);
process.setAttribute("socialLogin", socialLogin);
return new ProcessRedirectResult(nextPage, new String[0]); return new ProcessRedirectResult(nextPage, new String[0]);
} }
...@@ -103,7 +118,11 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor ...@@ -103,7 +118,11 @@ public class VerifyCompanyUserFP extends ORMProcessFormProcessor
IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany); IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany);
} }
if(!socialLogin)
{
secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getPassword()); secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getPassword());
}
companyUser.setIsAccountVerified(Boolean.TRUE); companyUser.setIsAccountVerified(Boolean.TRUE);
sendMail(companyUser, request); sendMail(companyUser, request);
......
...@@ -10,6 +10,7 @@ import oneit.components.*; ...@@ -10,6 +10,7 @@ import oneit.components.*;
import oneit.logging.LogLevel; import oneit.logging.LogLevel;
import oneit.logging.LogMgr; import oneit.logging.LogMgr;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.ObjectStatus;
import oneit.objstore.ObjectTransaction; import oneit.objstore.ObjectTransaction;
import oneit.objstore.services.TransactionServicesFactory; import oneit.objstore.services.TransactionServicesFactory;
import oneit.security.Role; import oneit.security.Role;
...@@ -23,6 +24,9 @@ import oneit.servlets.utils.decorator.ServletDecorator; ...@@ -23,6 +24,9 @@ import oneit.servlets.utils.decorator.ServletDecorator;
import oneit.servlets.utils.decorator.ServletDecoratorConfig; import oneit.servlets.utils.decorator.ServletDecoratorConfig;
import oneit.utils.*; import oneit.utils.*;
import performa.orm.Candidate; import performa.orm.Candidate;
import performa.orm.CompanyUser;
import performa.orm.Company;
import performa.orm.types.RoleType;
/** /**
* This is almost similar class to OAuthCallbackDecorator, * This is almost similar class to OAuthCallbackDecorator,
...@@ -85,7 +89,20 @@ public class PerformaOAuthCallbackDecorator implements ServletDecorator, Initial ...@@ -85,7 +89,20 @@ public class PerformaOAuthCallbackDecorator implements ServletDecorator, Initial
else if(fullURL.contains(WebUtils.ADMIN_PORTAL)) else if(fullURL.contains(WebUtils.ADMIN_PORTAL))
{ {
secUser.addRole(Role.searchNAME(secUser.getTransaction(), Utils.ROLE_CLIENT)); secUser.addRole(Role.searchNAME(secUser.getTransaction(), Utils.ROLE_CLIENT));
secUser.addRole(Role.searchNAME(secUser.getTransaction(), Utils.ROLE_COMPANY_ADMIN));
CompanyUser companyUser = secUser.getExtensionOrCreate(CompanyUser.REFERENCE_CompanyUser);
if(companyUser.getStatus()==ObjectStatus.NEW)
{
Company company = Company.createCompany(transaction);
company.setCompanyName(" ");
company.setAddedByUser(companyUser);
company.addToUsers(companyUser);
companyUser.setRole(RoleType.ADMIN);
}
} }
transaction.commit(); transaction.commit();
......
...@@ -380,7 +380,7 @@ public class Utils ...@@ -380,7 +380,7 @@ public class Utils
} }
public static SecUser getSecUserForCompanyIfAvailable(CompanyUser companyUser) public static Tuple.T2<SecUser, Boolean> getSecUserForCompanyIfAvailable(CompanyUser companyUser)
{ {
SecUser secUser = companyUser.getUser(); SecUser secUser = companyUser.getUser();
SecUser availableSecUser = SecUser.searchNAME(companyUser.getTransaction(), secUser.getEmail()); SecUser availableSecUser = SecUser.searchNAME(companyUser.getTransaction(), secUser.getEmail());
...@@ -396,11 +396,11 @@ public class Utils ...@@ -396,11 +396,11 @@ public class Utils
secUser.removeFromExtensions(companyUser); secUser.removeFromExtensions(companyUser);
secUser.delete(); secUser.delete();
return availableSecUser; return new Tuple.T2<SecUser, Boolean>(availableSecUser, Boolean.TRUE);
} }
} }
return secUser; return new Tuple.T2<SecUser, Boolean>(secUser, Boolean.FALSE);
} }
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</FORM> </FORM>
<FORM name="*.facebookOAuthLogin" factory="Participant" class="oneit.security.oauth.form.FacebookOAuthLoginFP"/> <FORM name="*.facebookOAuthLogin" factory="Participant" class="oneit.security.oauth.form.FacebookOAuthLoginFP"/>
<FORM name="*.googleOAuthLogin" factory="Participant" class="oneit.security.oauth.form.GoogleOAuthLoginFP"/> <FORM name="*.googleOAuthLogin" factory="Participant" class="oneit.security.oauth.form.GoogleOAuthLoginFP"/>
<!--<FORM name="*.linkedinOAuthLogin" factory="Participant" class="performa.form.LinkedInOAuthLoginFP"/>--> <FORM name="*.linkedinOAuthLogin" factory="Participant" class="performa.form.LinkedInOAuthLoginFP"/>
</NODE> </NODE>
<NODE name="forgot_password_jsp" factory="Participant"> <NODE name="forgot_password_jsp" factory="Participant">
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<% <%
String nextPage = WebUtils.getSamePageInRenderMode(request, "InviteUsers"); String nextPage = WebUtils.getSamePageInRenderMode(request, "InviteUsers");
Company company = (Company) process.getAttribute("Company"); Company company = (Company) process.getAttribute("Company");
Boolean socialLogin = CollectionUtils.equals(process.getAttribute("socialLogin"), Boolean.TRUE);
Debug.assertion(company != null, "Invalid company user in admin portal"); Debug.assertion(company != null, "Invalid company user in admin portal");
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
Integer pageNumber = 1; Integer pageNumber = 1;
process.setAttribute("Company", company); process.setAttribute("Company", company);
process.setAttribute("socialLogin", socialLogin);
%> %>
<div class="hello-company-name">Hello, <%= secUser.getFirstName() %></div> <div class="hello-company-name">Hello, <%= secUser.getFirstName() %></div>
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<div class="form-group text-left"> <div class="form-group text-left">
<label>Email Address</label> <label>Email Address</label>
<% <%
if(companyUser.getStatus()==ObjectStatus.NEW) if(companyUser.getStatus()==ObjectStatus.NEW || secUser.getEmail()==null)
{ {
%> %>
<oneit:ormInput obj="<%= secUser %>" type="text" attributeName="Email" cssClass="form-control" style="text-transform: lowercase" required="true"/> <oneit:ormInput obj="<%= secUser %>" type="text" attributeName="Email" cssClass="form-control" style="text-transform: lowercase" required="true"/>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<% <%
String nextPage = WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.ADMIN_HOME).getLink(request) + "?showModal=true"; String nextPage = WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.ADMIN_HOME).getLink(request) + "?showModal=true";
Company company = (Company) process.getAttribute("Company"); Company company = (Company) process.getAttribute("Company");
Boolean socialLogin = CollectionUtils.equals(process.getAttribute("socialLogin"), Boolean.TRUE);
Debug.assertion(company != null, "Invalid company user in admin portal"); Debug.assertion(company != null, "Invalid company user in admin portal");
...@@ -88,7 +89,7 @@ ...@@ -88,7 +89,7 @@
<div class="main-sc-section text-center company-profile-btn"> <div class="main-sc-section text-center company-profile-btn">
<oneit:button value="Send invites & proceed" name="sendCompanyUserInvites" cssClass="btn btn-primary box-btn" <oneit:button value="Send invites & proceed" name="sendCompanyUserInvites" cssClass="btn btn-primary box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Company", company).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("socialLogin", socialLogin).mapEntry("Company", company).toMap())
.toMap() %>"/> .toMap() %>"/>
</div> </div>
</div> </div>
......
...@@ -8,6 +8,19 @@ ...@@ -8,6 +8,19 @@
<% <%
//TODO: filter with Client; //TODO: filter with Client;
SecUser secUser = SecUser.getTXUser(transaction); SecUser secUser = SecUser.getTXUser(transaction);
//to verify social login and redirect to login verification
if(secUser.hasRole(Utils.ROLE_CLIENT))
{
CompanyUser companyUser = secUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
if(companyUser!=null && companyUser.getIsAccountVerified()!=Boolean.TRUE)
{
response.sendRedirect(WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.COMPANY_ACCOUNT_VERIFICATION).getLink(request));
return;
}
}
Job[] jobs = Job.SearchByAll().andJobStatus(new EqualsFilter<>(JobStatus.OPEN)) Job[] jobs = Job.SearchByAll().andJobStatus(new EqualsFilter<>(JobStatus.OPEN))
.andCompanyUser(new EqualsFilter(secUser.getExtension(CompanyUser.REFERENCE_CompanyUser))) .andCompanyUser(new EqualsFilter(secUser.getExtension(CompanyUser.REFERENCE_CompanyUser)))
.search(transaction); .search(transaction);
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
String nextPage = WebUtils.getSamePageInRenderMode(request, "CompanyProfile"); String nextPage = WebUtils.getSamePageInRenderMode(request, "CompanyProfile");
CompanyUser companyUser = (CompanyUser) process.getAttribute("CompanyUser"); CompanyUser companyUser = (CompanyUser) process.getAttribute("CompanyUser");
SecUser secUser = null; SecUser secUser = null;
Boolean socialLogin = Boolean.FALSE;
//to process company user verification //to process company user verification
String id = request.getParameter("id"); String id = request.getParameter("id");
...@@ -31,8 +32,22 @@ ...@@ -31,8 +32,22 @@
if(invalid) if(invalid)
{ {
//to handle social login
SecUser logedInUser = SecUser.getTXUser(transaction);
companyUser = logedInUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
if(logedInUser!=null
&& logedInUser.hasRole(Utils.ROLE_CLIENT)
&& companyUser!=null
&& companyUser.getIsAccountVerified()!=Boolean.TRUE)
{
socialLogin = Boolean.TRUE;
}
else
{
response.sendRedirect(WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.ADMIN_HOME).getLink(request)); response.sendRedirect(WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.ADMIN_HOME).getLink(request));
} }
}
Debug.assertion(companyUser != null, "Invalid CompanyUser in admin portal"); Debug.assertion(companyUser != null, "Invalid CompanyUser in admin portal");
%> %>
...@@ -78,6 +93,10 @@ ...@@ -78,6 +93,10 @@
<div class="main-box-layout login-box"> <div class="main-box-layout login-box">
<oneit:dynInclude page="/extensions/adminportal/inc/company_user_data.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" CompanyUser="<%= companyUser %>"/> <oneit:dynInclude page="/extensions/adminportal/inc/company_user_data.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" CompanyUser="<%= companyUser %>"/>
<%
if(!socialLogin)
{
%>
<div class="form-group text-left"> <div class="form-group text-left">
<label>Password</label> <label>Password</label>
<oneit:ormInput obj="<%= companyUser %>" type="password" attributeName="Password" cssClass="form-control second-style reset-pw" required="true"/> <oneit:ormInput obj="<%= companyUser %>" type="password" attributeName="Password" cssClass="form-control second-style reset-pw" required="true"/>
...@@ -86,9 +105,13 @@ ...@@ -86,9 +105,13 @@
<label>Confirm password</label> <label>Confirm password</label>
<oneit:ormInput obj="<%= companyUser %>" type="password" attributeName="ConfirmPassword" cssClass="form-control second-style reset-pw " required="true"/> <oneit:ormInput obj="<%= companyUser %>" type="password" attributeName="ConfirmPassword" cssClass="form-control second-style reset-pw " required="true"/>
</div> </div>
<%
}
%>
<oneit:button value="Verify and login" name="verifyCompanyUser" cssClass="box-btn verify-btn" <oneit:button value="Verify and login" name="verifyCompanyUser" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser) requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser)
.mapEntry("socialLogin", socialLogin)
.mapEntry("nextPage", nextPage).toMap() %>"/> .mapEntry("nextPage", nextPage).toMap() %>"/>
</div> </div>
</oneit:form> </oneit:form>
......
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