Exemple #1
0
    def discojson(self, e, langs=None):
        if e is None:
            return dict()

        title, descr = self.ext_display(e)
        entity_id = e.get('entityID')

        d = dict(title=title,
                 descr=descr,
                 auth='saml',
                 entityID=entity_id)

        eattr = entity_attribute_dict(e)
        if 'idp' in eattr[ATTRS['role']]:
            d['type'] = 'idp'
            d['hidden'] = 'true'
            if 'http://pyff.io/category/discoverable' in eattr[ATTRS['entity-category']]:
                d['hidden'] = 'false'
        elif 'sp' in eattr[ATTRS['role']]:
            d['type'] = 'sp'

        icon_info = self.icon(e)
        if icon_info is not None:
            d['icon'] = icon_info.get('url', 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==')
            d['icon_height'] = icon_info.get('height', 64)
            d['icon_width'] = icon_info.get('width', 64)

        scopes = self.scopes(e)
        if scopes is not None and len(scopes) > 0:
            d['scope'] = ",".join(scopes)

        keywords = filter_lang(e.iter("{%s}Keywords" % NS['mdui']), langs=langs)
        if keywords is not None:
            lst = [elt.text for elt in keywords]
            if len(lst) > 0:
                d['keywords'] = ",".join(lst)
        psu = self.psu(e, langs)
        if psu:
            d['psu'] = psu
        geo = self.geoloc(e)
        if geo:
            d['geo'] = geo

        return d
Exemple #2
0
    def discojson(self, e, langs=None):
        if e is None:
            return dict()

        title, descr = self.ext_display(e)
        entity_id = e.get('entityID')

        d = dict(title=title,
                 descr=descr,
                 auth='saml',
                 entityID=entity_id)

        eattr = entity_attribute_dict(e)
        if 'idp' in eattr[ATTRS['role']]:
            d['type'] = 'idp'
            d['hidden'] = 'true'
            if 'http://pyff.io/category/discoverable' in eattr[ATTRS['entity-category']]:
                d['hidden'] = 'false'
        elif 'sp' in eattr[ATTRS['role']]:
            d['type'] = 'sp'

        icon_info = self.icon(e)
        if icon_info is not None:
            d['icon'] = icon_info.get('url', 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==')
            d['icon_height'] = icon_info.get('height', 64)
            d['icon_width'] = icon_info.get('width', 64)

        scopes = self.scopes(e)
        if scopes is not None and len(scopes) > 0:
            d['scope'] = ",".join(scopes)

        keywords = filter_lang(e.iter("{%s}Keywords" % NS['mdui']), langs=langs)
        if keywords is not None:
            lst = [elt.text for elt in keywords]
            if len(lst) > 0:
                d['keywords'] = ",".join(lst)
        psu = self.psu(e, langs)
        if psu:
            d['psu'] = psu
        geo = self.geoloc(e)
        if geo:
            d['geo'] = geo

        return d
Exemple #3
0
 def test_entity_dict_test01(self):
     d = entity_attribute_dict(root(self.test01))
     assert ('example.com' in d[ATTRS['domain']])
     assert ('example.net' in d[ATTRS['domain']])
     assert ('foo.com' not in d[ATTRS['domain']])
Exemple #4
0
 def test_entity_dict_test01(self):
     d = entity_attribute_dict(root(self.test01))
     assert ('example.com' in d[ATTRS['domain']])
     assert ('example.net' in d[ATTRS['domain']])
     assert ('foo.com' not in d[ATTRS['domain']])