1919from django .core .exceptions import ObjectDoesNotExist
2020from django .core .cache import cache
2121
22-
2322from dashboard .models import *
2423from recon_note .models import *
2524from reNgine .celery import app
3433from startScan .models import EndPoint
3534from targetApp .models import *
3635from api .shared_api_tasks import import_hackerone_programs_task , sync_bookmarked_programs_task
37- from .serializers import *
36+ from api .permissions import *
37+ from api .serializers import *
3838
3939
4040logger = logging .getLogger (__name__ )
@@ -333,6 +333,9 @@ def clear_all(self, request):
333333
334334
335335class OllamaManager (APIView ):
336+ permission_classes = [HasPermission ]
337+ permission_required = PERM_MODIFY_SYSTEM_CONFIGURATIONS
338+
336339 def get (self , request ):
337340 """
338341 API to download Ollama Models
@@ -474,6 +477,9 @@ def get(self, request):
474477
475478
476479class CreateProjectApi (APIView ):
480+ permission_classes = [HasPermission ]
481+ permission_required = PERM_MODIFY_TARGETS
482+
477483 def get (self , request ):
478484 req = self .request
479485 project_name = req .query_params .get ('name' )
@@ -915,6 +921,9 @@ def post(self, request):
915921
916922
917923class AddTarget (APIView ):
924+ permission_classes = [HasPermission ]
925+ permission_required = PERM_MODIFY_TARGETS
926+
918927 def post (self , request ):
919928 req = self .request
920929 data = req .data
@@ -1050,6 +1059,9 @@ def post(self, request):
10501059
10511060
10521061class DeleteMultipleRows (APIView ):
1062+ permission_classes = [HasPermission ]
1063+ permission_required = PERM_MODIFY_TARGETS
1064+
10531065 def post (self , request ):
10541066 req = self .request
10551067 data = req .data
@@ -1069,6 +1081,9 @@ def post(self, request):
10691081
10701082
10711083class StopScan (APIView ):
1084+ permission_classes = [HasPermission ]
1085+ permission_required = PERM_INITATE_SCANS_SUBSCANS
1086+
10721087 def post (self , request ):
10731088 req = self .request
10741089 data = req .data
@@ -1166,6 +1181,9 @@ def abort_subscan(subscan):
11661181
11671182
11681183class InitiateSubTask (APIView ):
1184+ permission_classes = [HasPermission ]
1185+ permission_required = PERM_INITATE_SCANS_SUBSCANS
1186+
11691187 def post (self , request ):
11701188 req = self .request
11711189 data = req .data
@@ -1185,6 +1203,9 @@ def post(self, request):
11851203
11861204
11871205class DeleteSubdomain (APIView ):
1206+ permission_classes = [HasPermission ]
1207+ permission_required = PERM_MODIFY_SCAN_RESULTS
1208+
11881209 def post (self , request ):
11891210 req = self .request
11901211 for id in req .data ['subdomain_ids' ]:
@@ -1193,6 +1214,9 @@ def post(self, request):
11931214
11941215
11951216class DeleteVulnerability (APIView ):
1217+ permission_classes = [HasPermission ]
1218+ permission_required = PERM_MODIFY_SCAN_RESULTS
1219+
11961220 def post (self , request ):
11971221 req = self .request
11981222 for id in req .data ['vulnerability_ids' ]:
@@ -1262,6 +1286,9 @@ def get(self, request):
12621286
12631287
12641288class UninstallTool (APIView ):
1289+ permission_classes = [HasPermission ]
1290+ permission_required = PERM_MODIFY_SYSTEM_CONFIGURATIONS
1291+
12651292 def get (self , request ):
12661293 req = self .request
12671294 tool_id = req .query_params .get ('tool_id' )
@@ -1300,6 +1327,9 @@ def get(self, request):
13001327
13011328
13021329class UpdateTool (APIView ):
1330+ permission_classes = [HasPermission ]
1331+ permission_required = PERM_MODIFY_SYSTEM_CONFIGURATIONS
1332+
13031333 def get (self , request ):
13041334 req = self .request
13051335 tool_id = req .query_params .get ('tool_id' )
@@ -1332,6 +1362,9 @@ def get(self, request):
13321362 return Response ({'status' : False , 'message' : str (e )})
13331363
13341364class GetExternalToolCurrentVersion (APIView ):
1365+ permission_classes = [HasPermission ]
1366+ permission_required = PERM_MODIFY_SYSTEM_CONFIGURATIONS
1367+
13351368 def get (self , request ):
13361369 req = self .request
13371370 # toolname is also the command
@@ -1368,6 +1401,9 @@ def get(self, request):
13681401
13691402
13701403class GithubToolCheckGetLatestRelease (APIView ):
1404+ permission_classes = [HasPermission ]
1405+ permission_required = PERM_MODIFY_SYSTEM_CONFIGURATIONS
1406+
13711407 def get (self , request ):
13721408 req = self .request
13731409
0 commit comments