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 )
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)