48 |
48 |
attribute_name = get_def_name_from_alias(name)
|
49 |
49 |
if not definition:
|
50 |
50 |
return {}, None
|
51 |
51 |
oid = definition['oid']
|
52 |
52 |
return {
|
53 |
53 |
'content_type': content_type,
|
54 |
54 |
'object_id': object_id,
|
55 |
55 |
'name_format': 'uri',
|
56 |
|
'friendly_name': name,
|
57 |
56 |
'name': 'urn:oid:%s' % oid,
|
58 |
|
}, attribute_name
|
|
57 |
}, {
|
|
58 |
'attribute_name': attribute_name.lower(),
|
|
59 |
'friendly_name': name,
|
|
60 |
}
|
59 |
61 |
|
60 |
62 |
def check_support_saml2(tree):
|
61 |
63 |
if tree is not None and lasso.SAML2_PROTOCOL_HREF in tree.get(PROTOCOL_SUPPORT_ENUMERATION):
|
62 |
64 |
return True
|
63 |
65 |
return False
|
64 |
66 |
|
65 |
67 |
def load_one_entity(tree, options, sp_policy=None, idp_policy=None, afp=None):
|
66 |
68 |
'''Load or update an EntityDescriptor into the database'''
|
... | ... | |
129 |
131 |
liberty_provider=provider,
|
130 |
132 |
defaults={'enabled': not options['create-disabled']})
|
131 |
133 |
if sp_policy:
|
132 |
134 |
service_provider.sp_options_policy = sp_policy
|
133 |
135 |
service_provider.save()
|
134 |
136 |
if afp and provider.entity_id in afp:
|
135 |
137 |
pks = []
|
136 |
138 |
for name in afp[provider.entity_id]:
|
137 |
|
kwargs, attribute_name = build_saml_attribute_kwargs(provider, name)
|
|
139 |
kwargs, defaults = build_saml_attribute_kwargs(provider, name)
|
138 |
140 |
if not kwargs:
|
139 |
141 |
if verbosity > 1:
|
140 |
142 |
print >>sys.stderr, _('Unable to find an LDAP definition for attribute %(name)s on %(provider)s') % \
|
141 |
143 |
{'name': name, 'provider': provider}
|
142 |
144 |
continue
|
143 |
|
attribute_name = attribute_name.lower()
|
144 |
|
defaults = {
|
145 |
|
'attribute_name': attribute_name,
|
146 |
|
}
|
147 |
145 |
# create object with default attribute mapping to the same name
|
148 |
146 |
# as the attribute if no SAMLAttribute model already exists,
|
149 |
147 |
# otherwise do nothing
|
150 |
148 |
try:
|
151 |
149 |
attribute, created = SAMLAttribute.objects.get_or_create(defaults=defaults,
|
152 |
150 |
**kwargs)
|
153 |
151 |
if created and verbosity > 1:
|
154 |
152 |
print _('Created new attribute %(name)s for %(provider)s') % \
|
155 |
|
-
|