35
35
from dojo .finding .queries import get_authorized_findings
36
36
from dojo .endpoint .queries import get_authorized_endpoints
37
37
from dojo .finding_group .queries import get_authorized_finding_groups
38
+ from dojo .user .queries import get_authorized_users
38
39
from django .forms import HiddenInput
39
40
from dojo .utils import is_finding_groups_enabled
40
41
@@ -592,10 +593,7 @@ def __init__(self, *args, **kwargs):
592
593
593
594
class EngagementDirectFilter (DojoFilter ):
594
595
name = CharFilter (lookup_expr = 'icontains' , label = 'Engagement name contains' )
595
- lead = ModelChoiceFilter (
596
- queryset = Dojo_User .objects .filter (
597
- engagement__lead__isnull = False ).distinct (),
598
- label = "Lead" )
596
+ lead = ModelChoiceFilter (queryset = Dojo_User .objects .none (), label = "Lead" )
599
597
version = CharFilter (field_name = 'version' , lookup_expr = 'icontains' , label = 'Engagement version' )
600
598
test__version = CharFilter (field_name = 'test__version' , lookup_expr = 'icontains' , label = 'Test version' )
601
599
@@ -647,6 +645,8 @@ class EngagementDirectFilter(DojoFilter):
647
645
def __init__ (self , * args , ** kwargs ):
648
646
super (EngagementDirectFilter , self ).__init__ (* args , ** kwargs )
649
647
self .form .fields ['product__prod_type' ].queryset = get_authorized_product_types (Permissions .Product_Type_View )
648
+ self .form .fields ['lead' ].queryset = get_authorized_users (Permissions .Product_Type_View ) \
649
+ .filter (engagement__lead__isnull = False ).distinct ()
650
650
651
651
class Meta :
652
652
model = Engagement
@@ -655,10 +655,7 @@ class Meta:
655
655
656
656
class EngagementFilter (DojoFilter ):
657
657
engagement__name = CharFilter (lookup_expr = 'icontains' , label = 'Engagement name contains' )
658
- engagement__lead = ModelChoiceFilter (
659
- queryset = Dojo_User .objects .filter (
660
- engagement__lead__isnull = False ).distinct (),
661
- label = "Lead" )
658
+ engagement__lead = ModelChoiceFilter (queryset = Dojo_User .objects .none (), label = "Lead" )
662
659
engagement__version = CharFilter (field_name = 'engagement__version' , lookup_expr = 'icontains' , label = 'Engagement version' )
663
660
engagement__test__version = CharFilter (field_name = 'engagement__test__version' , lookup_expr = 'icontains' , label = 'Test version' )
664
661
@@ -704,17 +701,16 @@ class EngagementFilter(DojoFilter):
704
701
def __init__ (self , * args , ** kwargs ):
705
702
super (EngagementFilter , self ).__init__ (* args , ** kwargs )
706
703
self .form .fields ['prod_type' ].queryset = get_authorized_product_types (Permissions .Product_Type_View )
704
+ self .form .fields ['engagement__lead' ].queryset = get_authorized_users (Permissions .Product_Type_View ) \
705
+ .filter (engagement__lead__isnull = False ).distinct ()
707
706
708
707
class Meta :
709
708
model = Product
710
709
fields = ['name' , 'prod_type' ]
711
710
712
711
713
712
class ProductEngagementFilter (DojoFilter ):
714
- lead = ModelChoiceFilter (
715
- queryset = Dojo_User .objects .filter (
716
- engagement__lead__isnull = False ).distinct (),
717
- label = "Lead" )
713
+ lead = ModelChoiceFilter (queryset = Dojo_User .objects .none (), label = "Lead" )
718
714
version = CharFilter (lookup_expr = 'icontains' , label = 'Engagement version' )
719
715
test__version = CharFilter (field_name = 'test__version' , lookup_expr = 'icontains' , label = 'Test version' )
720
716
@@ -760,9 +756,14 @@ class ProductEngagementFilter(DojoFilter):
760
756
761
757
)
762
758
759
+ def __init__ (self , * args , ** kwargs ):
760
+ super (ProductEngagementFilter , self ).__init__ (* args , ** kwargs )
761
+ self .form .fields ['lead' ].queryset = get_authorized_users (Permissions .Product_Type_View ) \
762
+ .filter (engagement__lead__isnull = False ).distinct ()
763
+
763
764
class Meta :
764
765
model = Product
765
- fields = ['id' , ' name' ]
766
+ fields = ['name' ]
766
767
767
768
768
769
class ApiEngagementFilter (DojoFilter ):
@@ -1156,10 +1157,10 @@ class FindingFilter(FindingFilterWithTags):
1156
1157
payload = CharFilter (lookup_expr = 'icontains' )
1157
1158
1158
1159
reporter = ModelMultipleChoiceFilter (
1159
- queryset = Dojo_User .objects .all ())
1160
+ queryset = Dojo_User .objects .none ())
1160
1161
1161
1162
reviewers = ModelMultipleChoiceFilter (
1162
- queryset = Dojo_User .objects .all ())
1163
+ queryset = Dojo_User .objects .none ())
1163
1164
1164
1165
test__engagement__product__prod_type = ModelMultipleChoiceFilter (
1165
1166
queryset = Product_Type .objects .none (),
@@ -1331,6 +1332,8 @@ def __init__(self, *args, **kwargs):
1331
1332
self .form .fields ['finding_group' ].queryset = get_authorized_finding_groups (Permissions .Finding_Group_View )
1332
1333
if self .form .fields .get ('endpoints' ):
1333
1334
self .form .fields ['endpoints' ].queryset = get_authorized_endpoints (Permissions .Endpoint_View ).distinct ()
1335
+ self .form .fields ['reporter' ].queryset = get_authorized_users (Permissions .Finding_View )
1336
+ self .form .fields ['reviewers' ].queryset = self .form .fields ['reporter' ].queryset
1334
1337
1335
1338
1336
1339
class AcceptedFindingFilter (FindingFilter ):
@@ -1339,11 +1342,12 @@ class AcceptedFindingFilter(FindingFilter):
1339
1342
1340
1343
risk_acceptance__owner = \
1341
1344
ModelMultipleChoiceFilter (
1342
- queryset = Dojo_User .objects .all (),
1345
+ queryset = Dojo_User .objects .none (),
1343
1346
label = "Risk Acceptance Owner" )
1344
1347
1345
1348
def __init__ (self , * args , ** kwargs ):
1346
1349
super ().__init__ (* args , ** kwargs )
1350
+ self .form .fields ['risk_acceptance__owner' ].queryset = get_authorized_users (Permissions .Finding_View )
1347
1351
1348
1352
1349
1353
class SimilarFindingFilter (FindingFilter ):
@@ -1741,10 +1745,7 @@ class Meta:
1741
1745
1742
1746
1743
1747
class EngagementTestFilter (DojoFilter ):
1744
- lead = ModelChoiceFilter (
1745
- queryset = Dojo_User .objects .filter (
1746
- engagement__lead__isnull = False ).distinct (),
1747
- label = "Lead" )
1748
+ lead = ModelChoiceFilter (queryset = Dojo_User .objects .none (), label = "Lead" )
1748
1749
version = CharFilter (lookup_expr = 'icontains' , label = 'Version' )
1749
1750
1750
1751
if settings .TRACK_IMPORT_HISTORY :
@@ -1799,6 +1800,8 @@ def __init__(self, *args, **kwargs):
1799
1800
super (DojoFilter , self ).__init__ (* args , ** kwargs )
1800
1801
self .form .fields ['test_type' ].queryset = Test_Type .objects .filter (test__engagement = self .engagement ).distinct ().order_by ('name' )
1801
1802
self .form .fields ['api_scan_configuration' ].queryset = Product_API_Scan_Configuration .objects .filter (product = self .engagement .product ).distinct ()
1803
+ self .form .fields ['lead' ].queryset = get_authorized_users (Permissions .Product_Type_View ) \
1804
+ .filter (test__lead__isnull = False ).distinct ()
1802
1805
1803
1806
1804
1807
class ApiTestFilter (DojoFilter ):
@@ -2080,13 +2083,17 @@ class LogEntryFilter(DojoFilter):
2080
2083
from auditlog .models import LogEntry
2081
2084
2082
2085
action = MultipleChoiceFilter (choices = LogEntry .Action .choices )
2083
- actor = ModelMultipleChoiceFilter (queryset = Dojo_User .objects .all ())
2086
+ actor = ModelMultipleChoiceFilter (queryset = Dojo_User .objects .none ())
2084
2087
timestamp = DateRangeFilter ()
2085
2088
2089
+ def __init__ (self , * args , ** kwargs ):
2090
+ super (LogEntryFilter , self ).__init__ (* args , ** kwargs )
2091
+ self .form .fields ['actor' ].queryset = get_authorized_users (Permissions .Product_View )
2092
+
2086
2093
class Meta :
2087
2094
model = LogEntry
2088
2095
exclude = ['content_type' , 'object_pk' , 'object_id' , 'object_repr' ,
2089
- 'changes' , 'additional_data' ]
2096
+ 'changes' , 'additional_data' , 'remote_addr' ]
2090
2097
2091
2098
2092
2099
class ProductTypeFilter (DojoFilter ):
0 commit comments