@@ -978,6 +978,10 @@ def get(self, request):
978978 })
979979
980980
981+ def get_report_module (module , request ):
982+ return get_object_or_404 (ReportModule .objects .restrict (request .user ), file_path__regex = f"^{ module } \\ ." )
983+
984+
981985class ReportView (ContentTypePermissionRequiredMixin , View ):
982986 """
983987 Display a single Report and its associated Job (if any).
@@ -986,7 +990,7 @@ def get_required_permission(self):
986990 return 'extras.view_report'
987991
988992 def get (self , request , module , name ):
989- module = get_object_or_404 ( ReportModule . objects . restrict ( request . user ), file_path__startswith = module )
993+ module = get_report_module ( module , request )
990994 report = module .reports [name ]()
991995
992996 object_type = ContentType .objects .get (app_label = 'extras' , model = 'reportmodule' )
@@ -1007,7 +1011,7 @@ def post(self, request, module, name):
10071011 if not request .user .has_perm ('extras.run_report' ):
10081012 return HttpResponseForbidden ()
10091013
1010- module = get_object_or_404 ( ReportModule . objects . restrict ( request . user ), file_path__startswith = module )
1014+ module = get_report_module ( module , request )
10111015 report = module .reports [name ]()
10121016 form = ReportForm (request .POST , scheduling_enabled = report .scheduling_enabled )
10131017
@@ -1046,7 +1050,7 @@ def get_required_permission(self):
10461050 return 'extras.view_report'
10471051
10481052 def get (self , request , module , name ):
1049- module = get_object_or_404 ( ReportModule . objects . restrict ( request . user ), file_path__startswith = module )
1053+ module = get_report_module ( module , request )
10501054 report = module .reports [name ]()
10511055
10521056 return render (request , 'extras/report/source.html' , {
@@ -1062,7 +1066,7 @@ def get_required_permission(self):
10621066 return 'extras.view_report'
10631067
10641068 def get (self , request , module , name ):
1065- module = get_object_or_404 ( ReportModule . objects . restrict ( request . user ), file_path__startswith = module )
1069+ module = get_report_module ( module , request )
10661070 report = module .reports [name ]()
10671071
10681072 object_type = ContentType .objects .get (app_label = 'extras' , model = 'reportmodule' )
@@ -1151,13 +1155,17 @@ def get(self, request):
11511155 })
11521156
11531157
1158+ def get_script_module (module , request ):
1159+ return get_object_or_404 (ScriptModule .objects .restrict (request .user ), file_path__regex = f"^{ module } \\ ." )
1160+
1161+
11541162class ScriptView (ContentTypePermissionRequiredMixin , View ):
11551163
11561164 def get_required_permission (self ):
11571165 return 'extras.view_script'
11581166
11591167 def get (self , request , module , name ):
1160- module = get_object_or_404 ( ScriptModule . objects . restrict ( request . user ), file_path__startswith = module )
1168+ module = get_script_module ( module , request )
11611169 script = module .scripts [name ]()
11621170 form = script .as_form (initial = normalize_querydict (request .GET ))
11631171
@@ -1181,7 +1189,7 @@ def post(self, request, module, name):
11811189 if not request .user .has_perm ('extras.run_script' ):
11821190 return HttpResponseForbidden ()
11831191
1184- module = get_object_or_404 ( ScriptModule . objects . restrict ( request . user ), file_path__startswith = module )
1192+ module = get_script_module ( module , request )
11851193 script = module .scripts [name ]()
11861194 form = script .as_form (request .POST , request .FILES )
11871195
@@ -1218,7 +1226,7 @@ def get_required_permission(self):
12181226 return 'extras.view_script'
12191227
12201228 def get (self , request , module , name ):
1221- module = get_object_or_404 ( ScriptModule . objects . restrict ( request . user ), file_path__startswith = module )
1229+ module = get_script_module ( module , request )
12221230 script = module .scripts [name ]()
12231231
12241232 return render (request , 'extras/script/source.html' , {
@@ -1234,7 +1242,7 @@ def get_required_permission(self):
12341242 return 'extras.view_script'
12351243
12361244 def get (self , request , module , name ):
1237- module = get_object_or_404 ( ScriptModule . objects . restrict ( request . user ), file_path__startswith = module )
1245+ module = get_script_module ( module , request )
12381246 script = module .scripts [name ]()
12391247
12401248 object_type = ContentType .objects .get (app_label = 'extras' , model = 'scriptmodule' )
0 commit comments