Fix MembersFilter of Users api, now filter correctly and filter by is_active

remotes/origin/enhancement/email-actions
Jesús Espino 2015-03-12 09:54:51 +01:00
parent 65a6a2dcb6
commit be4d0c6d06
2 changed files with 7 additions and 4 deletions

View File

@ -238,7 +238,7 @@ class MembersFilterBackend(PermissionBasedFilterBackend):
def filter_queryset(self, request, queryset, view): def filter_queryset(self, request, queryset, view):
project_id = None project_id = None
project = None project = None
qs = queryset qs = queryset.filter(is_active=True)
if "project" in request.QUERY_PARAMS: if "project" in request.QUERY_PARAMS:
try: try:
project_id = int(request.QUERY_PARAMS["project"]) project_id = int(request.QUERY_PARAMS["project"])
@ -262,7 +262,10 @@ class MembersFilterBackend(PermissionBasedFilterBackend):
projects_list = [membership.project_id for membership in memberships_qs] projects_list = [membership.project_id for membership in memberships_qs]
if project and not "view_project" in project.public_permissions: if project:
is_member = project.id in projects_list
has_project_public_view_permission = "view_project" in project.public_permissions
if not is_member and not has_project_public_view_permission:
qs = qs.none() qs = qs.none()
qs = qs.filter(Q(memberships__project_id__in=projects_list) | qs = qs.filter(Q(memberships__project_id__in=projects_list) |

View File

@ -115,7 +115,7 @@ def test_user_list(client, data):
response = client.get(url) response = client.get(url)
users_data = json.loads(response.content.decode('utf-8')) users_data = json.loads(response.content.decode('utf-8'))
assert len(users_data) == 6 assert len(users_data) == 3
assert response.status_code == 200 assert response.status_code == 200