def __init__(self, fname, fronter, include_password=True): self.xml = XMLWriter(fname) self.xml.startDocument(encoding='ISO-8859-1') self.rootEl = 'enterprise' self.DataSource = 'OVGS-Cerebrum' self.fronter = fronter self.include_password = include_password
def __init__(self, fname, cf_dir=None, debug_file=None, debug_level=None, fronter=None, include_password=True): self.xml = XMLWriter(fname) self.xml.startDocument(encoding='ISO-8859-1') self.rootEl = 'enterprise' self.DataSource = 'HiH-Cerebrum' self.cf_dir = cf_dir self.debug_file = debug_file self.debug_level = debug_level self.fronter = fronter self.include_password = include_password
def __init__(self, fname, fronter, include_password=True): self.xml = XMLWriter(fname) self.xml.startDocument(encoding='UTF-8') self.rootEl = 'enterprise' self.DataSource = 'OVGS-Cerebrum' self.fronter = fronter self.include_password = include_password
class FronterXML(object): def __init__(self, fname, cf_dir=None, debug_file=None, debug_level=None, fronter=None, include_password=True): self.xml = XMLWriter(fname) self.xml.startDocument(encoding='ISO-8859-1') self.rootEl = 'enterprise' self.DataSource = 'HiH-Cerebrum' self.cf_dir = cf_dir self.debug_file = debug_file self.debug_level = debug_level self.fronter = fronter self.include_password = include_password def start_xml_file(self): self.xml.comment("Eksporterer data...") self.xml.startTag(self.rootEl) self.xml.startTag('properties') self.xml.dataElement('datasource', self.DataSource) self.xml.dataElement('target', "Fronter/HiH") self.xml.dataElement('datetime', time.strftime("%F %T %z")) self.xml.endTag('properties') def user_to_XML(self, id, userid, recstatus, data): """Lager XML for en person""" self.xml.startTag('person', {'recstatus': recstatus}) self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', id) self.xml.endTag('sourcedid') if self.include_password: self.xml.dataElement('userid', userid, self.fronter.pwd(data['PASSWORD'])) self.xml.startTag('name') self.xml.dataElement( 'fn', " ".join([x for x in (data['GIVEN'], data['FAMILY']) if x])) self.xml.startTag('n') self.xml.dataElement('family', data['FAMILY']) self.xml.dataElement('given', data['GIVEN']) self.xml.endTag('n') self.xml.endTag('name') self.xml.dataElement('email', data['EMAIL']) self.xml.emptyTag( 'systemrole', {'systemroletype': fronter.useraccess(data['USERACCESS'])}) self.xml.emptyTag('institutionrole', {'institutionroletype': data['INSTROLETYPE']}) self.xml.startTag('adr') self.xml.dataElement('street', data['STREET']) self.xml.dataElement('pcode', data['ZIP']) self.xml.dataElement('locality', data['LOCALITY']) self.xml.dataElement('country', data['COUNTRY']) self.xml.endTag('adr') self.xml.dataElement('tel', data['MOBILE'], {'teltype': 3}) self.xml.endTag('person') def group_to_XML(self, id, recstatus, data, type): # Lager XML for en gruppe self.xml.startTag('group', {'recstatus': recstatus}) self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', id) self.xml.endTag('sourcedid') self.xml.startTag('grouptype') self.xml.dataElement('scheme', 'FronterStructure1.0') self.xml.dataElement('typevalue', data['typeval'], {'level': type}) self.xml.endTag('grouptype') self.xml.startTag('description') description = data.get("description", data["title"]) if (len(description) > 60): self.xml.emptyTag('short') self.xml.dataElement('long', description) else: self.xml.dataElement('short', description) self.xml.endTag('description') self.xml.startTag('relationship', {'relation': 1}) self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', data['parent']) self.xml.endTag('sourcedid') self.xml.endTag('relationship') self.xml.endTag('group') def personmembers_to_XML(self, gid, recstatus, members): # lager XML av medlemer self.xml.startTag('membership') self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', gid) self.xml.endTag('sourcedid') for fnr in members.keys(): self.xml.startTag('member') self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', str(fnr)) self.xml.endTag('sourcedid') # This is a person member (as opposed to a group). self.xml.dataElement('idtype', '1') self.xml.startTag('role', { 'recstatus': recstatus, 'roletype': Fronter.ROLE_READ }) self.xml.dataElement('status', '1') self.xml.dataElement('subrole', members[fnr]) self.xml.startTag('extension') # Member of group, not room. self.xml.emptyTag('memberof', {'type': 1}) self.xml.endTag('extension') self.xml.endTag('role') self.xml.endTag('member') self.xml.endTag('membership') def end(self): self.xml.endTag(self.rootEl) self.xml.endDocument()
class FronterXML(object): def __init__(self, fname, fronter, include_password=True): self.xml = XMLWriter(fname) self.xml.startDocument(encoding='UTF-8') self.rootEl = 'enterprise' self.DataSource = 'OVGS-Cerebrum' self.fronter = fronter self.include_password = include_password def start_xml_file(self): self.xml.comment("Eksporterer data...") self.xml.startTag(self.rootEl) self.xml.startTag('properties') self.xml.dataElement('datasource', self.DataSource) self.xml.dataElement('target', "ClassFronter/Østfold") self.xml.dataElement('datetime', time.strftime("%F %T %z")) self.xml.endTag('properties') def user_to_XML(self, id, userid, recstatus, data): """Lager XML for en person""" self.xml.startTag('person', {'recstatus': recstatus}) self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', id) self.xml.endTag('sourcedid') if self.include_password: self.xml.dataElement('userid', userid, self.fronter.pwd(data['PASSWORD'])) self.xml.startTag('name') self.xml.dataElement('fn', " ".join([x for x in (data['GIVEN'], data['FAMILY']) if x])) self.xml.startTag('n') self.xml.dataElement('family', data['FAMILY']) self.xml.dataElement('given', data['GIVEN']) self.xml.endTag('n') self.xml.endTag('name') self.xml.dataElement('email', data['EMAIL']) self.xml.emptyTag('systemrole', {'systemroletype': self.fronter.useraccess(data['USERACCESS'])}) self.xml.emptyTag('institutionrole', {'institutionroletype': data['INSTROLETYPE']}) self.xml.endTag('person') def group_to_XML(self, id, recstatus, data, type): # Lager XML for en gruppe self.xml.startTag('group', {'recstatus': recstatus}) self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', id) self.xml.endTag('sourcedid') self.xml.startTag('grouptype') self.xml.dataElement('scheme', 'FronterStructure1.0') self.xml.dataElement('typevalue', data['typeval'], {'level': type}) self.xml.endTag('grouptype') self.xml.startTag('description') description = data.get("description", data["title"]) if (len(description) > 60): self.xml.emptyTag('short') self.xml.dataElement('long', description) else: self.xml.dataElement('short', description) self.xml.endTag('description') self.xml.startTag('relationship', {'relation': 1}) self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', data['parent']) self.xml.endTag('sourcedid') self.xml.endTag('relationship') self.xml.endTag('group') def personmembers_to_XML(self, gid, recstatus, members): # lager XML av medlemer self.xml.startTag('membership') self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', gid) self.xml.endTag('sourcedid') for fnr in members.keys(): self.xml.startTag('member') self.xml.startTag('sourcedid') self.xml.dataElement('source', self.DataSource) self.xml.dataElement('id', text_type(fnr)) self.xml.endTag('sourcedid') # This is a person member (as opposed to a group). self.xml.dataElement('idtype', '1') self.xml.startTag('role', {'recstatus': recstatus, 'roletype': self.fronter.ROLE_READ}) self.xml.dataElement('status', '1') self.xml.dataElement('subrole', members[fnr]) self.xml.startTag('extension') # Member of group, not room. self.xml.emptyTag('memberof', {'type': 1}) self.xml.endTag('extension') self.xml.endTag('role') self.xml.endTag('member') self.xml.endTag('membership') def end(self): self.xml.endTag(self.rootEl) self.xml.endDocument()