Attachment 'userform.py.patch'

Download

   1 --- userform.py.orig	2006-01-27 20:07:46.377487392 +0100
   2 +++ userform.py	2006-01-27 20:07:53.370424304 +0100
   3 @@ -157,12 +157,26 @@
   4              if _debug:
   5                  result = result + util.dumpFormData(form)
   6              return result
   7 -
   8 +            
   9 +        ## Reimar Bauer 2006-01-24 ##   
  10 +        if form.has_key('select_user'): # Select user profile (su user)
  11 +            if self.request.request_method != 'POST':
  12 +                return _("Use UserPreferences to change your settings or create an account.")
  13 +            su_user = form.get('selected_user', [''])[0]
  14 +            uid = user.getUserId(self.request, su_user)
  15 +            theuser = user.User(self.request, uid)
  16 +            theuser.disabled = None
  17 +            theuser.save()
  18 +            self.request.user = theuser
  19 +            self.request.setCookie()
  20 +            return  _("Use UserPreferences to change settings of the selected user account")
  21 +        ###############################    
  22 + 
  23          if form.has_key('save'): # Save user profile
  24              if self.request.request_method != 'POST':
  25                  return _("Use UserPreferences to change your settings or create an account.")
  26              theuser = self.request.get_user()
  27 -                
  28 +
  29              if not 'name' in theuser.auth_attribs:
  30                  # Require non-empty name
  31                  theuser.name = form.get('name', [theuser.name])[0]
  32 @@ -386,6 +400,21 @@
  33                  
  34          return util.web.makeSelection('language', options, cur_lang)
  35    
  36 +    ## Reimar Bauer 2006-01-24 ##    
  37 +    def _user_select(self):
  38 +        from MoinMoin import user
  39 +        
  40 +        _ = self._
  41 +        cur_user = self.request.user.name
  42 +        users = user.getUserList(self.request)
  43 +        options = [] 
  44 +        for uid in users:
  45 +            name = user.User(self.request, id=uid).name
  46 +            options.append((name, name))
  47 +                
  48 +        return util.web.makeSelection('selected_user', options, cur_user)
  49 +    ###############################
  50 +            
  51      def _theme_select(self):
  52          """ Create theme selection. """
  53          cur_theme = self.request.user.valid and self.request.user.theme_name or self.cfg.theme_default
  54 @@ -443,7 +472,21 @@
  55          """ Create the complete HTML form code. """
  56          _ = self._
  57          self.make_form()
  58 -
  59 +        
  60 +        ## ReimarBauer 2006-01-24 ##
  61 +        if self.request.user.name in self.request.cfg.superuser:
  62 +            self.make_row(_('Select User'), [self._user_select()])
  63 +            
  64 +            buttons = [("select_user", _('Select User'))]
  65 +            button_cell = []
  66 +            for name, label in buttons:
  67 +                 button_cell.extend([
  68 +                 html.INPUT(type="submit", name=name, value=label),
  69 +                 ' ',
  70 +                ])
  71 +            self.make_row('', button_cell)
  72 +        ############################    
  73 +            
  74          if self.request.user.valid and not create_only:
  75              buttons = [('save', _('Save'))]
  76              uf_remove = self.cfg.user_form_remove

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2006-01-22 16:36:23, 1.3 KB) [[attachment:user.py.patch]]
  • [get | view] (2006-01-27 18:54:49, 3.0 KB) [[attachment:userform.py.patch]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.