[pmwiki-devel] How to deal with "I forgot my password"
John Rankin
john.rankin at affinity.co.nz
Sun Mar 20 19:12:23 CDT 2011
We are using a modified version of Cookbook.NewGroupBox [1] to let users
create a NewGroup.HomePage and set a group password for edit/upload in
NewGroup.GroupAttributes. The user only needs read access to the "Start
a New Group" page, but gets re-prompted for the new edit password before
the recipe saves NewGroup.HomePage. We want a way for users to recover
from a forgotten password and are having difficulty working out how to
implement a suitable scheme.
We envisage this will work as follows (open to suggestions for a better
way and correction of any misunderstandings).
1. As part of creating a new group, prompt the user for an email
address, which gets stored (unencrypted) in NewGroup.GroupAttributes. I
think pmwiki only encrypts attribute values if the name starts with
"passwd", otherwise they are stored in the clear. Send a welcome message
to the address with the url of the new group plus the password.
2. Add a "Forgot your password?" link to the standard pmwiki form that
prompts the user to enter a password. When clicked, this will:
- generate a string of letters and numbers and set this as an attr
password in NewGroup.GroupAttributes
- retrieve the stored email address and send it an email containing the
generated attr password string and a link to an action=resetpasswd that
requires the new attr password
3. When the user clicks the link, it takes her to a form that prompts
for the attr password sent in the email and for a new password. The code
will then:
- check that the attr password authorises the action
- set the edit and upload passwords to the entered new password value
- unset the attr password, so that if the email gets compromised, the
password no longer works
- retrieve the email address and send it a confirming email with the new
edit/upload password
I need advice on how to:
a. retrieve the email address from NewGroup.GroupAttributes (is this
just a call to PageVar?)
b. check that the attr password is valid and that only the generated
value allows the resetpasswd action
c. unset the attr password in a way that does not open
NewGroup.GroupAttributes to editing by all and sundry
d. deal with the case where a user with an edit password has accessed
NewGroup.GroupAttributes?action=attr
Comments? have others solved a similar problem?
[1] http://www.pmwiki.org/wiki/Cookbook/NewGroupBox
--
John Rankin
Affinity Limited
T 64 4 495 3737
F 64 4 473 7991
M 021 RANKIN
john.rankin at affinity.co.nz
www.affinity.co.nz
More information about the pmwiki-devel
mailing list