--- userform.py.orig	2006-01-27 20:07:46.377487392 +0100
+++ userform.py	2006-01-27 20:07:53.370424304 +0100
@@ -157,12 +157,26 @@
             if _debug:
                 result = result + util.dumpFormData(form)
             return result
-
+            
+        ## Reimar Bauer 2006-01-24 ##   
+        if form.has_key('select_user'): # Select user profile (su user)
+            if self.request.request_method != 'POST':
+                return _("Use UserPreferences to change your settings or create an account.")
+            su_user = form.get('selected_user', [''])[0]
+            uid = user.getUserId(self.request, su_user)
+            theuser = user.User(self.request, uid)
+            theuser.disabled = None
+            theuser.save()
+            self.request.user = theuser
+            self.request.setCookie()
+            return  _("Use UserPreferences to change settings of the selected user account")
+        ###############################    
+ 
         if form.has_key('save'): # Save user profile
             if self.request.request_method != 'POST':
                 return _("Use UserPreferences to change your settings or create an account.")
             theuser = self.request.get_user()
-                
+
             if not 'name' in theuser.auth_attribs:
                 # Require non-empty name
                 theuser.name = form.get('name', [theuser.name])[0]
@@ -386,6 +400,21 @@
                 
         return util.web.makeSelection('language', options, cur_lang)
   
+    ## Reimar Bauer 2006-01-24 ##    
+    def _user_select(self):
+        from MoinMoin import user
+        
+        _ = self._
+        cur_user = self.request.user.name
+        users = user.getUserList(self.request)
+        options = [] 
+        for uid in users:
+            name = user.User(self.request, id=uid).name
+            options.append((name, name))
+                
+        return util.web.makeSelection('selected_user', options, cur_user)
+    ###############################
+            
     def _theme_select(self):
         """ Create theme selection. """
         cur_theme = self.request.user.valid and self.request.user.theme_name or self.cfg.theme_default
@@ -443,7 +472,21 @@
         """ Create the complete HTML form code. """
         _ = self._
         self.make_form()
-
+        
+        ## ReimarBauer 2006-01-24 ##
+        if self.request.user.name in self.request.cfg.superuser:
+            self.make_row(_('Select User'), [self._user_select()])
+            
+            buttons = [("select_user", _('Select User'))]
+            button_cell = []
+            for name, label in buttons:
+                 button_cell.extend([
+                 html.INPUT(type="submit", name=name, value=label),
+                 ' ',
+                ])
+            self.make_row('', button_cell)
+        ############################    
+            
         if self.request.user.valid and not create_only:
             buttons = [('save', _('Save'))]
             uf_remove = self.cfg.user_form_remove
