Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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()