Example #1
0
 def query(self):
     """
     Takes a query_obj constructed in the client and returns payload data response
     for the given query_obj.
     params: query_context: json_blob
     """
     query_context = QueryContext(**json.loads(request.form.get("query_context")))
     security_manager.assert_query_context_permission(query_context)
     payload_json = query_context.get_payload()
     return json.dumps(
         payload_json, default=utils.json_int_dttm_ser, ignore_nan=True
     )
Example #2
0
    def test_assert_query_context_permission(self, mock_datasource_access):
        query_context = Mock()
        query_context.datasource = self.get_datasource_mock()

        # Query context with the "datasource_access" permission.
        mock_datasource_access.return_value = True
        security_manager.assert_query_context_permission(query_context)

        # Query context without the "datasource_access" permission.
        mock_datasource_access.return_value = False

        with self.assertRaises(SupersetSecurityException):
            security_manager.assert_query_context_permission(query_context)