store incoming keys when adding a user record
[sfa.git] / sfa / storage / model.py
index 18029d1..30670f4 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
@@ -220,6 +222,9 @@ class RegUser (RegRecord):
         assert '@' in address
         return address
 
+    def normalize_xml (self):
+        if hasattr(self,'keys'): self.reg_keys = [ RegKey (key) for key in self.keys ]
+
 ####################
 # xxx tocheck : not sure about eager loading of this one
 # meaning, when querying the whole records, we expect there should
@@ -291,3 +296,4 @@ def make_record_xml (xml):
     xml_dict = xml_record.todict()
     logger.info("load from xml, keys=%s"%xml_dict.keys())
     return make_record_dict (xml_dict)
+