0004-attributes_ng-retrieve-both-static-and-session-roles.patch
| src/authentic2/attributes_ng/sources/django_user.py | ||
|---|---|---|
|
ctx['django_user_full_name'] = user.get_full_name()
|
||
|
Role = get_role_model()
|
||
|
user_auth_level = ctx['request'].session.get('auth_level', 1)
|
||
|
roles = Role.objects.for_user(user, max_auth_level=user_auth_level)
|
||
|
ctx['a2_role_slugs'] = roles.values_list('slug', flat=True)
|
||
|
ctx['a2_role_names'] = roles.values_list('name', flat=True)
|
||
|
ctx['a2_role_uuids'] = roles.values_list('uuid', flat=True)
|
||
|
if 'service' in ctx and getattr(ctx['service'], 'ou', None):
|
||
|
ou = ctx['service'].ou
|
||
|
ctx['a2_service_ou_role_slugs'] = roles.filter(ou=ou).values_list('slug', flat=True)
|
||
|
ctx['a2_service_ou_role_names'] = roles.filter(ou=ou).values_list('name', flat=True)
|
||
|
ctx['a2_service_ou_role_uuids'] = roles.filter(ou=ou).values_list('uuid', flat=True)
|
||
|
for role_type in ('session', 'static'):
|
||
|
if role_type == 'session':
|
||
|
prefix = 'a2_'
|
||
|
roles = Role.objects.for_user(user, max_auth_level=user_auth_level)
|
||
|
else:
|
||
|
prefix = 'a2_static_'
|
||
|
roles = Role.objects.for_user(user)
|
||
|
ctx[prefix + 'role_slugs'] = roles.values_list('slug', flat=True)
|
||
|
ctx[prefix + 'role_names'] = roles.values_list('name', flat=True)
|
||
|
ctx[prefix + 'role_uuids'] = roles.values_list('uuid', flat=True)
|
||
|
if 'service' in ctx and getattr(ctx['service'], 'ou', None):
|
||
|
ou = ctx['service'].ou
|
||
|
ctx[prefix + 'service_ou_role_slugs'] = \
|
||
|
roles.filter(ou=ou).values_list('slug', flat=True)
|
||
|
ctx[prefix + 'service_ou_role_names'] = \
|
||
|
roles.filter(ou=ou).values_list('name', flat=True)
|
||
|
ctx[prefix + 'service_ou_role_uuids'] = \
|
||
|
roles.filter(ou=ou).values_list('uuid', flat=True)
|
||
|
return ctx
|
||