Pepocho
parent
d31c7b21d7
commit
bad32e5cba
|
@ -30,7 +30,6 @@ from taiga.base.utils.db import to_tsquery
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
# Base and Mixins
|
# Base and Mixins
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
@ -229,7 +228,7 @@ class MembersFilterBackend(PermissionBasedFilterBackend):
|
||||||
project_id = int(request.QUERY_PARAMS["project"])
|
project_id = int(request.QUERY_PARAMS["project"])
|
||||||
except:
|
except:
|
||||||
logger.error("Filtering project diferent value than an integer: {}".format(
|
logger.error("Filtering project diferent value than an integer: {}".format(
|
||||||
request.QUERY_PARAMS["project"]))
|
request.QUERY_PARAMS["project"]))
|
||||||
raise exc.BadRequest(_("'project' must be an integer value."))
|
raise exc.BadRequest(_("'project' must be an integer value."))
|
||||||
|
|
||||||
if project_id:
|
if project_id:
|
||||||
|
@ -256,14 +255,14 @@ class MembersFilterBackend(PermissionBasedFilterBackend):
|
||||||
|
|
||||||
q = Q(memberships__project_id__in=projects_list) | Q(id=request.user.id)
|
q = Q(memberships__project_id__in=projects_list) | Q(id=request.user.id)
|
||||||
|
|
||||||
#If there is no selected project we want access to users from public projects
|
# If there is no selected project we want access to users from public projects
|
||||||
if not project:
|
if not project:
|
||||||
q = q | Q(memberships__project__public_permissions__contains=[self.permission])
|
q = q | Q(memberships__project__public_permissions__contains=[self.permission])
|
||||||
|
|
||||||
qs = qs.filter(q)
|
qs = qs.filter(q)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if project and not "view_project" in project.anon_permissions:
|
if project and "view_project" not in project.anon_permissions:
|
||||||
qs = qs.none()
|
qs = qs.none()
|
||||||
|
|
||||||
qs = qs.filter(memberships__project__anon_permissions__contains=[self.permission])
|
qs = qs.filter(memberships__project__anon_permissions__contains=[self.permission])
|
||||||
|
@ -433,13 +432,14 @@ class WatchersFilter(FilterBackend):
|
||||||
|
|
||||||
def filter_queryset(self, request, queryset, view):
|
def filter_queryset(self, request, queryset, view):
|
||||||
query_watchers = self._get_watchers_queryparams(request.QUERY_PARAMS)
|
query_watchers = self._get_watchers_queryparams(request.QUERY_PARAMS)
|
||||||
model = queryset.model
|
|
||||||
if query_watchers:
|
if query_watchers:
|
||||||
WatchedModel = apps.get_model("notifications", "Watched")
|
WatchedModel = apps.get_model("notifications", "Watched")
|
||||||
watched_type = ContentType.objects.get_for_model(queryset.model)
|
watched_type = ContentType.objects.get_for_model(queryset.model)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
watched_ids = WatchedModel.objects.filter(content_type=watched_type, user__id__in=query_watchers).values_list("object_id", flat=True)
|
watched_ids = (WatchedModel.objects.filter(content_type=watched_type,
|
||||||
|
user__id__in=query_watchers)
|
||||||
|
.values_list("object_id", flat=True))
|
||||||
queryset = queryset.filter(id__in=watched_ids)
|
queryset = queryset.filter(id__in=watched_ids)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise exc.BadRequest(_("Error in filter params types."))
|
raise exc.BadRequest(_("Error in filter params types."))
|
||||||
|
|
Loading…
Reference in New Issue