Hello
Below code will help you to implement change password from custom portlet.
Please follow below steps :
step 1 : create Action URL
<portlet:actionURL name="updatePassword" var="updatePassword"/>
step 2 : Write below code in JSP page
<aui:form method="post" action="<%=updatePassword%>" name="updatepassword" id="updatepassword">
<aui:input label="" name="current" type="text"></aui:input>
<aui:input label="" name="password1" type="text"></aui:input>
<aui:input label="" name="password2" type="text"></aui:input>
<aui:button type="submit" label="" value="Save"></aui:button>
</aui:form>
step 3 : Write below Action Class
public void updatePassword(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException
{
ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
String current =uploadRequest.getParameter(actionResponse.getNamespace()+"current");
String password1 =uploadRequest.getParameter(actionResponse.getNamespace()+"password1");
String password2 =uploadRequest.getParameter(actionResponse.getNamespace()+"password2");
logger.info(current+" "+password1+" "+password2);
try {
long userId=UserLocalServiceUtil.authenticateForBasic(themeDisplay.getCompanyId(), "emailAddress", themeDisplay.getUser().getEmailAddress(), current);
if(themeDisplay.getUserId()!=userId)
{
throw new Exception("Invalid current password.");
}
if(!password1.equals(password2))
{
throw new Exception("Please confirm new password.");
}
UserLocalServiceUtil.updatePassword(userId, password1, password2, false);
} catch (PortalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SystemException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
}
0 Comment(s)