@@ -115,6 +115,7 @@ def filter_asset(self, queryset):
115115 def filter_user (self , queryset ):
116116 user_id = self .request .query_params .get ('user_id' )
117117 username = self .request .query_params .get ('username' )
118+ query_group = self .request .query_params .get ('all' )
118119 if user_id :
119120 user = get_object_or_none (User , pk = user_id )
120121 elif username :
@@ -123,6 +124,15 @@ def filter_user(self, queryset):
123124 return queryset
124125 if not user :
125126 return queryset .none ()
127+ else :
128+ kwargs = {}
129+ args = []
130+ if query_group :
131+ groups = user .groups .all ()
132+ args .append (Q (users = user ) | Q (user_groups__in = groups ))
133+ else :
134+ kwargs ["users" ] = user
135+ return queryset .filter (* args , ** kwargs ).distinct ()
126136
127137 def filter_user_group (self , queryset ):
128138 user_group_id = self .request .query_params .get ('user_group_id' )
@@ -148,6 +158,7 @@ def filter_keyword(self, queryset):
148158 def filter_queryset (self , queryset ):
149159 queryset = super ().filter_queryset (queryset )
150160 queryset = self .filter_valid (queryset )
161+ queryset = self .filter_user (queryset )
151162 queryset = self .filter_keyword (queryset )
152163 queryset = self .filter_asset (queryset )
153164 queryset = self .filter_node (queryset )
0 commit comments