You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2014/08/21 20:43:28 UTC
git commit: [#7566] Do not check for permissions for tickets without
acl settings. Use count query instead of find
Repository: allura
Updated Branches:
refs/heads/master d54e5d426 -> f12e4aa3c
[#7566] Do not check for permissions for tickets without acl settings. Use count query instead of find
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f12e4aa3
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f12e4aa3
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f12e4aa3
Branch: refs/heads/master
Commit: f12e4aa3c1e827b1f0bcf9af2fd6970f3b744a84
Parents: d54e5d4
Author: Alexander Luberg <al...@slashdotmedia.com>
Authored: Mon Aug 4 18:18:19 2014 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Thu Aug 21 18:38:20 2014 +0000
----------------------------------------------------------------------
ForgeTracker/forgetracker/model/ticket.py | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/f12e4aa3/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 7ca6176..8e7c859 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -215,13 +215,20 @@ class Globals(MappedClass):
d = dict(name=name, hits=0, closed=0)
if not (fld_name and m_name):
return d
- mongo_query = {'custom_fields.%s' % fld_name: m_name}
- r = Ticket.query.find(dict(
- mongo_query, app_config_id=self.app_config_id, deleted=False))
- tickets = [t for t in r if security.has_access(t, 'read')]
- d['hits'] = len(tickets)
- d['closed'] = sum(1 for t in tickets
- if t.status in self.set_of_closed_status_names)
+ mongo_query = {
+ 'custom_fields.%s' % fld_name: m_name,
+ 'app_config_id': self.app_config_id,
+ 'deleted': False
+ }
+ d['hits'] = Ticket.query.find(dict(mongo_query, acl=[])).count()
+ d['closed'] = Ticket.query.find(dict(mongo_query, acl=[],
+ status={'$in': list(self.set_of_closed_status_names)})).count()
+
+ secured_tickets = Ticket.query.find(dict(mongo_query, acl={"$ne": []}))
+ if secured_tickets.count():
+ tickets = [t for t in secured_tickets if security.has_access(t, 'read')]
+ d['hits'] += len(tickets)
+ d['closed'] += sum(1 for t in tickets if t.status in self.set_of_closed_status_names)
return d
def invalidate_bin_counts(self):