def resolve_permissions()

in modular_api/index.py [0:0]


def resolve_permissions(tracer, empty_cache=False):
    def decorator(func):
        def wrapper(*a, **ka):
            # sleep(0.35)  # for what?
            user, password = request.auth or (None, None)
            token = None
            if not password:  # not basic auth -> probably bearer
                header = request.headers.get('Authorization')
                token = token_from_auth_header(header) if header else None
            try:
                allowed_commands, user_meta = \
                    PERMISSION_SERVICE.authenticate_user(
                        username=user,
                        password=password,
                        token=token,
                        empty_cache=empty_cache
                    )
                ka['allowed_commands'] = allowed_commands
                ka['user_meta'] = user_meta
                return func(*a, **ka)
            except Exception as e:
                _LOG.exception('Exception occurred resolving permissions')
                _trace_id = get_trace_id(tracer=tracer)
                # TODO sort out this trace id
                code, content = build_exception_content(exception=e)
                error_response = build_response(_trace_id=_trace_id,
                                                http_code=code,
                                                content=content)
                return error_response

        return wrapper

    return decorator