We use LimeSurvey for receiving grant applications. These applications sometimes take a while to fill out, and the applicants have the opportunity to save an existing application with a name and password for re-use later.
Once they save, the LimeSurvey server will send them an eMail with their name and password, and a link to get back into the existing application to continue working.
Inevitably, people forget their name and password, or misplace the email.
Incredibly, even after all these years, LimeSurvey doesn’t have a one-click solution for fixing the problem at the administrator level or a “forgot your password?” link on the login screen.
So, this becomes a tech support issue, and significant time sink. The only solution that I know of is for the administrator to go into the database back-end which stores all of the LimeSurvey tables, and reset the user’s password to a known password. Here is how I do this.
- Once contacted by a user in distress, I search the listings to find their application, and view the contents. If there isn’t any significant work done there, (i.e. they have just started the application), I’ll delete it and have them create a new one. Otherwise, I will note the eMail password and the user name.
- I then SSH into the mySQL back-end (or whatever database you are using).
- mysql -pmypassword
- use limesurvey;
- select scid, identifier, access_code, email from lime_saved_control;
This select statement displays the list of all the LimeSurvey users. Scanning this list, you’ll find your user’s email address or name. You can then isolate that particular record by repeating the query with a where clause.
- select scid, identifier, access_code, email from lime_saved_control where scid=’81’
The result record will look something like the following:
- Note in the diagram above the field names:
identifier = the name under which the user saved their application
access_code = a hash value of the password that they used.
These two items are what the user needs to be able to go into their existing grant application.
- You could run the hash through a reverse hash calculator to recover their existing password. However, I prefer simply to put in a new password:
update lime_saved_control set access_code = MD5(‘12345′) where scid=’81’;
- At this point I can send the user an eMail message showing what name the application was saved under and the new password of 12345.
Naturally this solution is fraught with danger…. so I’d recommend that you rehearse this procedure on your installation.