bugfix, need some discipline on naming relationship columns to avoid
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 3 Feb 2012 08:24:57 +0000 (09:24 +0100)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 3 Feb 2012 08:24:57 +0000 (09:24 +0100)
conflict with other areas of the code, like loading from xml records
or the like

sfa/importer/plimporter.py
sfa/storage/model.py

index 802ab97..9a6a8f5 100644 (file)
@@ -209,7 +209,7 @@ class PlImporter:
                 plc_keys = []
                 sfa_keys = []
                 if previous_record:
-                    sfa_keys = previous_record.keys
+                    sfa_keys = previous_record.reg_keys
                 if person_id in keys_by_person_id:
                     plc_keys = keys_by_person_id[person_id]
                 update_record = False
@@ -240,14 +240,14 @@ class PlImporter:
                         person_gid = self.auth_hierarchy.create_gid(urn, create_uuid(), pkey)
                         if previous_record: 
                             previous_record.gid=person_gid
-                            if pubkey: previous_record.keys=[RegKey (pubkey['key'], pubkey['key_id'])]
+                            if pubkey: previous_record.reg_keys=[RegKey (pubkey['key'], pubkey['key_id'])]
                             self.logger.info("PlImporter: updated person: %s" % previous_record)
                         else:
                             new_record = RegUser (hrn=hrn, gid=person_gid, 
                                                   pointer=person['person_id'], 
                                                   authority=get_authority(hrn),
                                                   email=person['email'])
-                            if pubkey: new_record.keys=[RegKey (pubkey['key'], pubkey['key_id'])]
+                            if pubkey: new_record.reg_keys=[RegKey (pubkey['key'], pubkey['key_id'])]
                             dbsession.add (new_record)
                             dbsession.commit()
                             self.logger.info("PlImporter: imported person: %s" % new_record)
index 18029d1..da66716 100644 (file)
@@ -199,7 +199,9 @@ class RegUser (RegRecord):
     __mapper_args__     = { 'polymorphic_identity' : 'user' }
     record_id           = Column (Integer, ForeignKey ("records.record_id"), primary_key=True)
     email               = Column ('email', String)
-    keys                = relationship ('RegKey', backref='user')
+    # can't use name 'keys' here because when loading from xml we're getting
+    # a 'keys' tag, and assigning a list of strings in a reference column like this crashes
+    reg_keys                = relationship ('RegKey', backref='reg_user')
     
     def __init__ (self, **kwds):
         # handle local settings