[opencms-dev] Forgot Password functionality

Frans Postma fpostma at xs4all.nl
Wed Mar 23 18:47:44 CET 2005


I think it makes sense that only an administrator can write user records and thus change their passwords :-) So yes, in order for
that to work on your online site you would need to login first (check out the loginElement from templateone)

As for getting user by email, a little bit of copying from backoffice.java shows us:

      List cmsUsers = cms.getUsers();
        for (int i = 0; i < cmsUsers.size(); i++) {
            String currentUserName = ((CmsUser)cmsUsers.get(i)).getName();
            CmsUUID currentUserId = ((CmsUser)cmsUsers.get(i)).getId();

            String email = ((CmsUser)cmsUsers.get(i)).getEmail();
		if (email.equals(whatYouWantHere)) {
			return (CmsUser)cmsUsers.get(i);
		}
        }  

Should give you a rough idea to work with. Esp. the cms.getUsers is interesting to get the list to search.

Frans

> -----Original Message-----
> From: opencms-dev-bounces at opencms.org 
> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of Patricio Keilty
> Sent: woensdag 23 maart 2005 17:26
> To: The OpenCms mailing list
> Subject: Re: [opencms-dev] Forgot Password functionality
> 
> Thanks for your reply Frans.
> 
> It worked when previewing from workplace, but when accessing the site 
> online, i get
> 
> org.opencms.security.CmsSecurityException: 
> [org.opencms.db.CmsSecurityManager] writeUser() customera [Code 300 - 
> Administrator priviledges are required to perform this operation]
> 
> As suggested in related thread i should login with admin privileges, 
> make changes and then invalidate session, is this correct?
> 
> Any hint on how to retrieve a CmsUser based on email?
> 
> Regards,
> Patricio
> 
> Patricio Keilty
> Colaborativa.net
> 
> 
> 
> Frans Postma wrote:
> 
> >I think you need to add something like this as last line:
> >
> >
> >    cmso.writeUser(user);
> >
> >== javadoc:
> >
> >writeUser
> >
> >public void writeUser(CmsUser user)
> >               throws CmsException
> >Updates the user information. 
> >
> >The user id has to be a valid OpenCms user id.
> >The user with the given id will be completely overriden by 
> the given data.
> >
> >Parameters:
> >user - the user to be written 
> >Throws: 
> >CmsException - if operation was not successful
> >==
> >
> >Frans
> >
> >  
> >
> >>-----Original Message-----
> >>From: opencms-dev-bounces at opencms.org 
> >>[mailto:opencms-dev-bounces at opencms.org] On Behalf Of 
> Patricio Keilty
> >>Sent: woensdag 23 maart 2005 0:40
> >>To: The OpenCms mailing list
> >>Subject: [opencms-dev] Forgot Password functionality
> >>
> >>Hi,
> >>i need to provide Forgot Password functionality for our 
> >>extranet, so in 
> >>case a customer has forgotten its username or pass, can enter 
> >>his email 
> >>and get its user & new pass emailed. So, user data needs to 
> >>be retrieved 
> >>by email, generate a random password & update user data; then 
> >>user/pass 
> >>will be mailed back to the customer.
> >>Have found a similar thread but with different requirements in 
> >>http://mail.opencms.org/pipermail/opencms-dev/2004q4/014262.html. 
> >><http://mail.opencms.org/pipermail/opencms-dev/2004q4/014262.html>
> >>I plan to employ a jsp like the following:
> >>
> >><%
> >>    CmsJspActionElement cms = new CmsJspActionElement( pageContext, 
> >>request, response );
> >>    CmsObject cmso = cms.getCmsObject();
> >>
> >>    String returnEmail = request.getParameter( "email" );
> >>    String userName = request.getParameter( "username" );
> >>    String redirect = request.getParameter( "redirect" );
> >>
> >>    try {
> >>
> >>        // retrieve user by email?
> >>        CmsUser user = cmso.readUser( userName );
> >>        String userEmail = user.getEmail();
> >>        if( userEmail != null && !userEmail.equals(  returnEmail )){
> >>             // email does not match
> >>        } else {
> >>            // create new random password
> >>            String newPass = "aabbcc";
> >>
> >>            user.setPassword( newPass );
> >>            user.touch();
> >>        }
> >>    } catch( CmsException e ){
> >>        // user not found
> >>    }
> >>
> >>    response.sendRedirect( redirect );
> >>%>
> >>
> >>Is it possible to retrieve user data by email?
> >>Have tried to change user password using 
> >>CmsUser.setPassword(), but it 
> >>did not update user pass.
> >>
> >>Could someone please provide sample code or any hints to 
> >>achieve these?
> >>
> >>Thanks in advance,
> >>Patricio
> >>
> >>-- 
> >>Patricio Keilty
> >>Colaborativa.net
> >>
> >>
> >>
> >>_______________________________________________
> >>This mail is send to you from the opencms-dev mailing list
> >>To change your list options, or to unsubscribe from the list, 
> >>please visit
> >>http://mail.opencms.org/mailman/listinfo/opencms-dev
> >>
> >>    
> >>
> >
> >
> >  
> >
> 
> 
> _______________________________________________
> This mail is send to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, 
> please visit
> http://mail.opencms.org/mailman/listinfo/opencms-dev
> 




More information about the opencms-dev mailing list