Exemplo n.º 1
0
 def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_no_jwt(self, mock_decode_jwt):
     """
     Verify get_enterprise_id_for_current_request_user_from_jwt returns None if
     decoded_jwt is None
     """
     mock_decode_jwt.return_value = None
     assert get_enterprise_id_for_current_request_user_from_jwt() is None
Exemplo n.º 2
0
 def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_jwt_no_context(self, mock_decode_jwt):
     """
     Verify get_enterprise_id_for_current_request_user_from_jwt returns None if jwt
     context is missing
     """
     mock_decode_jwt.return_value = {
         'roles': ['{}'.format(SYSTEM_ENTERPRISE_LEARNER_ROLE)]
     }
     assert get_enterprise_id_for_current_request_user_from_jwt() is None
Exemplo n.º 3
0
 def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_jwt(self, mock_decode_jwt):
     """
     Verify get_enterprise_id_for_current_request_user_from_jwt returns jwt context
     for user if request has jwt and user has proper role
     """
     mock_decode_jwt.return_value = {
         'roles': ['{}:some-uuid'.format(SYSTEM_ENTERPRISE_LEARNER_ROLE)]
     }
     assert get_enterprise_id_for_current_request_user_from_jwt() == 'some-uuid'
Exemplo n.º 4
0
    def test_get_enterprise_id_for_current_request_user_from_jwt_request_has_jwt_non_learner(self, mock_decode_jwt):
        """
        Verify get_enterprise_id_for_current_request_user_from_jwt returns None if
        user role is incorrect
        """

        mock_decode_jwt.return_value = {
            'roles': ['{}:some-uuid'.format(SYSTEM_ENTERPRISE_ADMIN_ROLE)]
        }
        assert get_enterprise_id_for_current_request_user_from_jwt() is None
Exemplo n.º 5
0
def get_enterprise_id_for_user(site, user):
    enterprise_from_jwt = get_enterprise_id_for_current_request_user_from_jwt()
    if enterprise_from_jwt:
        return enterprise_from_jwt

    try:
        enterprise_learner_response = fetch_enterprise_learner_data(site, user)
    except (AttributeError, ReqConnectionError, KeyError, SlumberHttpBaseException, Timeout) as exc:
        logger.info('Unable to retrieve enterprise learner data for User: %s, Exception: %s', user, exc)
        return None

    try:
        return enterprise_learner_response['results'][0]['enterprise_customer']['uuid']
    except IndexError:
        pass

    return None