11from django .http import Http404 , HttpResponseNotFound , HttpResponseForbidden
2+ from django .contrib .auth .models import User
23
34from rest_framework .decorators import api_view , permission_classes , authentication_classes
45from rest_framework .response import Response
@@ -85,9 +86,9 @@ def convertVariables(param):
8586 else :
8687 return param
8788
88- def even_newer_json_2_scasp (payload ,ruledoc ,testname ):
89+ def even_newer_json_2_scasp (payload ,user , rule ,testname ):
8990 output = ""
90- ontology = get_ontology_internal (ruledoc ,testname )
91+ ontology = get_ontology_internal (user , rule ,testname )
9192 # Basically, we need to know what the predicate is, what the parameters are, whether the parameters have category types, and if they are variables.
9293 # So get the predicate, look up the typing, modify for negation if required, and generate the fact, testing for categories if required.
9394
@@ -469,17 +470,18 @@ def format_statement_value(value,attribute_type):
469470@api_view (['POST' ])
470471@authentication_classes ([SessionAuthentication ])
471472@permission_classes ([AllowAny ])
472- def run_test (request ,ruledoc ,test_name ):
473+ def run_test (request ,user , rule ,test_name ):
473474 # Get the data (test, facts, and workspaces)
474475 # ruledoctest = RuleDoc.objects.filter(pk=ruledoc,owner=request.user)
475- test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (pk = ruledoc ),test_name = test_name )
476+ owner = User .objects .get (username = user )
477+ test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (rule_slug = rule ,owner = owner ),test_name = test_name )
476478 if request .user .has_perm ('blawx.run' ,test ):
477479 translated_facts = ""
478480 if request .data :
479- translated_facts = even_newer_json_2_scasp (request .data ,ruledoc ,test_name )
481+ translated_facts = even_newer_json_2_scasp (request .data ,user , rule ,test_name )
480482 # print("Facts Generated for Run Request:\n")
481483 # print(translated_facts)
482- wss = Workspace .objects .filter (ruledoc = RuleDoc .objects .get (pk = ruledoc ))
484+ wss = Workspace .objects .filter (ruledoc = RuleDoc .objects .get (rule_slug = rule , owner = owner ))
483485 ruleset = ""
484486 # for ws in wss:
485487 # ruleset += "\n\n" + ws.scasp_encoding
@@ -633,9 +635,10 @@ def run_test(request,ruledoc,test_name):
633635 else :
634636 return HttpResponseForbidden ()
635637
636- def get_ontology_internal (ruledoc ,test_name ):
637- wss = Workspace .objects .filter (ruledoc = RuleDoc .objects .get (pk = ruledoc ))
638- test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (pk = ruledoc ),test_name = test_name )
638+ def get_ontology_internal (user ,rule ,test_name ):
639+ owner = User .objects .get (username = user )
640+ wss = Workspace .objects .filter (ruledoc = RuleDoc .objects .get (rule_slug = rule ,owner = owner ))
641+ test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (rule_slug = rule ,owner = owner ),test_name = test_name )
639642 ruleset = ""
640643 for ws in wss :
641644 ruleset += "\n \n " + ws .scasp_encoding
@@ -1011,11 +1014,12 @@ def get_ontology_internal(ruledoc,test_name):
10111014@api_view (['GET' ])
10121015@authentication_classes ([SessionAuthentication ])
10131016@permission_classes ([IsAuthenticatedOrReadOnly ])
1014- def get_ontology (request ,ruledoc ,test_name ):
1015- ruledoctest = RuleDoc .objects .get (pk = ruledoc )
1017+ def get_ontology (request ,user ,rule ,test_name ):
1018+ owner = User .objects .get (username = user )
1019+ ruledoctest = RuleDoc .objects .get (rule_slug = rule ,owner = owner )
10161020 if request .user .has_perm ('blawx.view_ruledoc' ,ruledoctest ):
1017- test = BlawxTest .objects .get (ruledoc = ruledoc ,test_name = test_name )
1018- result = get_ontology_internal (ruledoc ,test_name )
1021+ test = BlawxTest .objects .get (ruledoc = RuleDoc . objects . get ( rule_slug = rule , owner = owner ) ,test_name = test_name )
1022+ result = get_ontology_internal (user , rule ,test_name )
10191023 if test .view == "" :
10201024 result ['View' ] = test .view
10211025 else :
@@ -1041,9 +1045,10 @@ def simplify_rule(rule):
10411045@api_view (['POST' ])
10421046@authentication_classes ([SessionAuthentication ])
10431047@permission_classes ([AllowAny ])
1044- def interview (request ,ruledoc ,test_name ):
1048+ def interview (request ,user , rule ,test_name ):
10451049 #print("Dealing with interview request.\n")
1046- test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (pk = ruledoc ),test_name = test_name )
1050+ owner = User .objects .get (username = user )
1051+ test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (rule_slug = rule ,owner = owner ),test_name = test_name )
10471052 if request .user .has_perm ('blawx.run' ,test ):
10481053
10491054
@@ -1167,10 +1172,11 @@ def interview(request,ruledoc,test_name):
11671172 # Effectively, we're going to start over.
11681173 translated_facts = ""
11691174 if request .data :
1170- translated_facts = even_newer_json_2_scasp (request .data , ruledoc , test_name ) #Generate answers INCLUDING assumptions in the submitted data
1175+ translated_facts = even_newer_json_2_scasp (request .data , user , rule , test_name ) #Generate answers INCLUDING assumptions in the submitted data
11711176
1172- wss = Workspace .objects .filter (ruledoc = RuleDoc .objects .get (pk = ruledoc ))
1173- test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (pk = ruledoc ),test_name = test_name )
1177+ owner = User .objects .get (username = user )
1178+ wss = Workspace .objects .filter (ruledoc = RuleDoc .objects .get (rule_slug = rule ,owner = owner ))
1179+ test = BlawxTest .objects .get (ruledoc = RuleDoc .objects .get (rule_slug = rule ,owner = owner ),test_name = test_name )
11741180 ruleset = ""
11751181 unique_rules = []
11761182 for ws in wss :
0 commit comments