Description

If you have two superuser accounts you can't su to the other superuser user without a AttributeError: 'NoneType' object has no attribute 'auth_method'. If you go in a line from one superuser to another superuser and then to a normal user you get an internal server error.

Steps to reproduce

You don't get a traceback, but the console log tells

2009-03-09 23:22:37,614 ERROR MoinMoin.wsgiapp:253 An exception has occurred.                                        
Traceback (most recent call last):                                                                                   
  File "/home/user/workspace/moin-1.9/MoinMoin/wsgiapp.py", line 243, in __call__                                     
    context = init(request)                                                                                          
  File "/home/user/workspace/moin-1.9/MoinMoin/wsgiapp.py", line 37, in init                                          
    context.user = setup_user(context, context.session)                                                              
  File "/home/user/workspace/moin-1.9/MoinMoin/wsgiapp.py", line 196, in setup_user                                   
    userobj = auth.handle_logout(context, userobj)                                                                   
  File "/home/user/workspace/moin-1.9/MoinMoin/auth/__init__.py", line 406, in handle_logout                          
    if userobj.auth_method == 'setuid':                                                                              
AttributeError: 'NoneType' object has no attribute 'auth_method'                                                     
2009-03-09 23:22:38,022 INFO MoinMoin.web.serving:41 localhost "GET /Example?action=logout&logout=logout HTTP/1.1" 500 -                                                                                                                  
2009-03-09 23:22:38,056 ERROR werkzeug:106 Error on request:                                                         
Traceback (most recent call last):                                                                                   
  File "/home/user/workspace/moin-1.9/MoinMoin/support/werkzeug/serving.py", line 150, in run_wsgi                    
    execute(app)                                                                                                     
  File "/home/user/workspace/moin-1.9/MoinMoin/support/werkzeug/serving.py", line 137, in execute
    application_iter = app(environ, start_response)
  File "/home/user/workspace/moin-1.9/MoinMoin/support/werkzeug/utils.py", line 244, in __call__
    return self.app(environ, start_response)
  File "/home/user/workspace/moin-1.9/MoinMoin/wsgiapp.py", line 243, in __call__
    context = init(request)
  File "/home/user/workspace/moin-1.9/MoinMoin/wsgiapp.py", line 37, in init
    context.user = setup_user(context, context.session)
  File "/home/user/workspace/moin-1.9/MoinMoin/wsgiapp.py", line 196, in setup_user
    userobj = auth.handle_logout(context, userobj)
  File "/home/user/workspace/moin-1.9/MoinMoin/auth/__init__.py", line 406, in handle_logout
    if userobj.auth_method == 'setuid':
AttributeError: 'NoneType' object has no attribute 'auth_method'

Example

Component selection

Details

MoinMoin Version

1.9 4638:7bc4d1571f8f

OS and Version

linux ubuntu 8.10

Python Version

2.5

Server Setup

standalone

Server Details

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

Workaround

Discussion

Plan


CategoryMoinMoinBugFixed

MoinMoin: MoinMoinBugs/1.9_toggle_between_two_superusers (last edited 2009-04-18 22:42:18 by ThomasWaldmann)