--- userform_orig.py	2006-04-25 01:19:00.000000000 +0200
+++ userform.py	2006-11-25 16:42:46.000000000 +0100
@@ -154,9 +154,12 @@
             # save data
             theuser.save()
             if form.has_key('create_and_mail'):
-                theuser.mailAccountData()
-            
-            result = _("User account created! You can use this account to login now...")
+                result1 = _("User account created.") # ToDo: Add translation for this!!
+                result2 = theuser.mailAccountData(form.get('password', [''])[0],True)
+                result = "%s %s" % (result1, _(result2)) # This assumes that all msg from mailAccountData have translations
+            else:
+                result = _("User account created! You can use this account to login now...")
+
             if _debug:
                 result = result + util.dumpFormData(form)
             return result
@@ -477,7 +480,7 @@
         _ = self._
         self.make_form()
 
-        if self.request.user.isSuperUser():
+        if self.request.user.isSuperUser() and create_only == False:
             ticket = wikiutil.createTicket()
             self.make_row(_('Select User'), [self._user_select()])
             self._form.append(html.INPUT(type="hidden", name="ticket", value="%s" % ticket))
@@ -588,22 +591,50 @@
                 ('create', _('Create Profile')),
                 ('cancel', _('Cancel')),
             ]
-            for key, label, type, length, textafter in self.cfg.user_form_fields:
-                if key in ('name', 'password', 'password2', 'email'):
-                    self.make_row(_(label),
-                              [ html.INPUT(type=type, size=length, name=key,
-                                           value=''),
-                                ' ', _(textafter), ])
+            if create_only == False:
+                for key, label, type, length, textafter in self.cfg.user_form_fields:
+                    if key in ('name', 'password', 'password2', 'email'):
+                        self.make_row(_(label),
+                                  [ html.INPUT(type=type, size=length, name=key,
+                                               value=''),
+                                    ' ', _(textafter), ])
+            else:
+                # We are in invitation mode; create some dummy password
+                from random import choice
+                letters = "abcdefghijklmnopqrstuvwxyz"
+                letters += "0123456789"
+                pwd = ''
+                for i in range(6):
+                    pwd += choice(letters)
+                    
+                for key, label, type, length, textafter in self.cfg.user_form_fields:
+                    if key in ('name', 'password', 'password2', 'email'):
+                        
+                        if key == 'password' or key == 'password2':
+                            self.make_row(_(label),
+                                      [ html.INPUT(type=type, size=length, name=key,
+                                                   value='%s' % pwd),
+                                        ' ', _(textafter), ])
+                        else:
+                            self.make_row(_(label),
+                                  [ html.INPUT(type=type, size=length, name=key,
+                                               value=''),
+                                    ' ', _(textafter), ])
+            
 
         if self.cfg.mail_enabled:
             buttons.append(("account_sendmail", _('Mail me my account data')))
 
         if create_only:
-            buttons = [("create_only", _('Create Profile'))]
+            # We don't want to have a create profile button in invitation mode
+            #buttons = [("create_only", _('Create Profile'))]
+            buttons = []
             if self.cfg.mail_enabled:
                 buttons.append(("create_and_mail", "%s + %s" %
                                 (_('Create Profile'), _('Email'))))
 
+            buttons.append(('cancel', _('Cancel')))
+
         # Add buttons
         button_cell = []
         for name, label in buttons:
