Description

The handleData method of the UserSettingsHandler class in userform.py raises KeyError exceptions when trying to access form fields that are listed in the user_form_disable list in multiconfig.py.

Steps to reproduce

  1. Add the email field in user_form_disable list in multiconfig.py
  2. Then when the email support is enabled, try pressing "Mail Account Details" in the UserPreferences page.

  3. The operation will fail with the message that a correct e-mail address has to be provided
  4. Close inspection shows that handleData raises a KeyError because the email field is not part of the form dictionary

Example

Component selection

Details

MoinMoin Version

1.6.0

OS and Version

Python Version

Server Setup

Server Details

Language you are using the wiki in (set in the browser/UserPreferences)

Workaround

Discussion

Did you also disable the name field? It should use this field if the email field raises a KeyError.


Looks like the password fields have a similar problem - from a moin-user mail:

Authentication against our domain controller now works just fine. As
the next step I now want to change the UserPreferences page according
to the ApacheOnWin32withDomainAuthentication description.

After adding the following lines to my wikiconfig.py I always get an
error telling me that I have to enter a password after saving my
preferences:

    show_login = 0
    user_form_remove = ['password', 'password2', 'logout',]
    user_checkbox_remove = ['disabled',]

Then I edited the UserPreferences page and removed the sections
"Creating a profile" and "Resetting password". Now after entering my
preference data and click on save I no longer get the error message
about the missing password, but nothing is being saved at all.

I can't reproduce neither of this issues with tip. -- FedericoSchwindt 2008-04-23 10:52:21

Which tip, which changeset, which release ? ReimarBauer/Photo/img.png -- ReimarBauer 2008-04-23 12:31:54

moin 1.7 as today. -- FedericoSchwindt 2008-04-23 14:14:35

it looks like show_login does not behave as expected in 1.7 changeset 3519 db35fff4d5ec -- ReimarBauer 2008-04-23 20:19:22

In 1.7 show_login is gone and the user preferences has changed enough so neither of these apply. -- FedericoSchwindt 2008-04-24 08:32:43

Any idea how to remove the login/logout button from the theme now? -- ReimarBauer 2008-04-24 09:33:33

For what I've checked, it will be done automatically by the auth module you decide to use, and it'll be up to the module itself to remove login/logout. If you want to do it for some other reason, you'll have to subclass BaseAuth. Check auth/__init__.py. -- FedericoSchwindt 2008-04-24 16:46:24

Plan


CategoryMoinMoinBugFixed

MoinMoin: MoinMoinBugs/UserSettingsHandlerFailsOnUserFormDisabledFields (last edited 2010-02-21 18:18:40 by ThomasWaldmann)