Files
2021-03-19 15:39:48 +05:00

31 lines
996 B
Python

"""
Utility functions for use in SAMLProviderConfig, SAMLProviderData tests
"""
from edx_rest_framework_extensions.auth.jwt.cookies import jwt_cookie_name
from edx_rest_framework_extensions.auth.jwt.tests.utils import generate_jwt_token, generate_unversioned_payload
def _jwt_token_from_role_context_pairs(user, role_context_pairs):
"""
Generates a new JWT token with roles assigned from pairs of (role name, context).
"""
roles = []
for role, context in role_context_pairs:
role_data = f'{role}'
if context is not None:
role_data += f':{context}'
roles.append(role_data)
payload = generate_unversioned_payload(user)
payload.update({'roles': roles})
return generate_jwt_token(payload)
def set_jwt_cookie(client, user, role_context_pairs=None):
"""
Set jwt token in cookies
"""
jwt_token = _jwt_token_from_role_context_pairs(user, role_context_pairs or [])
client.cookies[jwt_cookie_name()] = jwt_token