Code

Yet another fix to the mail gateway, messages got *all* files of
[roundup.git] / roundup / mailgw.py
index cd068899b2c622f35e8e2ab0f144c20b602a65ae..b90c98865ef4bb90a929ebc3869670989ff82480 100644 (file)
@@ -549,6 +549,7 @@ class parsedMessage:
         self.nodeid = None
         self.author = None
         self.recipients = None
+        self.msg_props = {}
         self.props = None
         self.content = None
         self.attachments = None
@@ -704,7 +705,7 @@ Subject was: '%(subject)s'
             attempts.append(classname)
 
         if self.mailgw.default_class:
-            attempts.append(self.default_class)
+            attempts.append(self.mailgw.default_class)
         else:
             attempts.append(self.config['MAILGW_DEFAULT_CLASS'])
 
@@ -1052,13 +1053,14 @@ encrypted.""")
                     'You are not permitted to add files to %(classname)s.'
                     ) % self.__dict__
 
+            self.msg_props['files'] = files
             if self.nodeid:
                 # extend the existing files list
                 fileprop = self.cl.get(self.nodeid, 'files')
                 fileprop.extend(files)
                 files = fileprop
 
-        self.props['files'] = files
+            self.props['files'] = files
 
     def create_msg(self):
         ''' Create msg containing all the relevant information from the message
@@ -1066,6 +1068,7 @@ encrypted.""")
         if not self.properties.has_key('messages'):
             return
         msg_props = self.mailgw.get_class_arguments('msg')
+        self.msg_props.update (msg_props)
         
         # Get the message ids
         inreplyto = self.message.getheader('in-reply-to') or ''
@@ -1093,8 +1096,8 @@ not find a text/plain part to use.
             try:
                 message_id = self.db.msg.create(author=self.author,
                     recipients=self.recipients, date=date.Date('.'),
-                    summary=summary, content=content, files=self.props['files'],
-                    messageid=messageid, inreplyto=inreplyto, **msg_props)
+                    summary=summary, content=content,
+                    messageid=messageid, inreplyto=inreplyto, **self.msg_props)
             except exceptions.Reject, error:
                 raise MailUsageError, _("""
 Mail message was rejected by a detector.
@@ -1688,7 +1691,7 @@ def uidFromAddress(db, address, create=1, **user_props):
         try:
             return db.user.create(username=trying, address=address,
                 realname=realname, roles=db.config.NEW_EMAIL_USER_ROLES,
-                password=password.Password(password.generatePassword()),
+                password=password.Password(password.generatePassword(), config=db.config),
                 **user_props)
         except exceptions.Reject:
             return 0