Details
- Applies to
- 1.6.1 - 1.8
- Purpose
- To automatically fill in the "email" section in the user's preferences if the "email" field is ever empty.
- Description
- The email section won't be overridden if the user has specified a email address. The introduced code path runs only if the email field is empty (eg on account creation or user accidentally set their email address to blank). To activate, apply patch, then set "auth_http_save_email = True" and "auth_http_email_suffix = '@somedomain.com'" in wikiconfig.py. If you set "auth_http_save_email" to True but do not set "auth_http_email_suffix", it will leave the email field blank.
For example, if you set "auth_http_email_suffix = '@blah.com'", and the user 'joeschmoe' logs in, his email attribute will be automatically filled in as 'joeschmoe@blah.com'.
Patch
1 --- multiconfig.py.org 2008-02-20 13:59:16.000000000 -0800
2 +++ multiconfig.py 2008-02-20 13:40:48.000000000 -0800
3 @@ -201,6 +201,8 @@ class DefaultConfig:
4 antispam_master_url = "http://master.moinmo.in/?action=xmlrpc2"
5 attachments = None # {'dir': path, 'url': url-prefix}
6 auth = [authmodule.moin_login, authmodule.moin_session, ]
7 + auth_http_save_email = False
8 + auth_http_email_suffix = ''
9
10 backup_compression = 'gz'
11 backup_users = []
multiconfig.py.authbasic.patch
//Lib/site-packages/!MoinMoin/auth/http.py
1 --- http.py.org 2008-02-20 13:53:50.000000000 -0800
2 +++ http.py 2008-02-20 13:38:21.000000000 -0800
3 @@ -16,6 +16,7 @@ def http(request, **kw):
4 """ authenticate via http basic/digest/ntlm auth """
5 user_obj = kw.get('user_obj')
6 u = None
7 + cfg = request.cfg
8 # check if we are running Twisted
9 if isinstance(request, request_twisted.Request):
10 username = request.twistd.getUser().decode(config.charset)
11 @@ -43,6 +44,9 @@ def http(request, **kw):
12 # we don't use the moin user profile for those attributes.
13 u = user.User(request, auth_username=username,
14 auth_method='http', auth_attribs=('name', 'password'))
15 + if cfg.auth_http_save_email and cfg.auth_http_email_suffix and u.email == '':
16 + email = username + cfg.auth_http_email_suffix
17 + u.email = email
18
19 if u:
20 u.create_or_update()
- Note
- For Moin versions 1.7 and 1.8, the above patch needs to be pasted in starting at line 85.
Discussion
and it does make sense to disable or remove some form fields in wikiconfig too
user_form_disable = ['name'] user_form_remove = ['password', 'password2', ]
Hmm, that code could be useful independent of the auth method (maybe not for ldap, where the email should come from ldap), but for many others.
So please check if that code could be move to a separate email_is_login auth method to be of general usefulness.
If course this stuff is only usefull if wiki email == fn(login_name).
- Oh, that's a great idea! I'll post up a separate patch once I have it done. And yes, it's only useful if wiki email == fn(login_name), but since it doesn't run if the field is filled in, (presumably) the user can change the email address if it's wrong or they'd like it to be something else. --counterpoke
Plan
- Priority:
- Assigned to:
- Status: