From e23bee99ecb4d318f2d46092c5a2a6f68122dc86 Mon Sep 17 00:00:00 2001 From: yackob03 Date: Fri, 27 Dec 2013 16:56:31 -0500 Subject: [PATCH] Fix a bug where users in a different org would not show up in the entity search. --- data/model.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/data/model.py b/data/model.py index ddfa74417..898740d33 100644 --- a/data/model.py +++ b/data/model.py @@ -386,7 +386,6 @@ def get_matching_teams(team_prefix, organization): def get_matching_users(username_prefix, robot_namespace=None, organization=None): - Org = User.alias() direct_user_query = (User.username ** (username_prefix + '%') & (User.organization == False) & (User.robot == False)) @@ -396,22 +395,25 @@ def get_matching_users(username_prefix, robot_namespace=None, (User.username ** (robot_prefix + '%') & (User.robot == True))) - query = User.select(User.username, Org.username, User.robot).where(direct_user_query) + query = (User + .select(User.username, Team.id, User.robot) + .where(direct_user_query)) if organization: - with_team = query.join(TeamMember, JOIN_LEFT_OUTER).join(Team, - JOIN_LEFT_OUTER) - with_org = with_team.join(Org, JOIN_LEFT_OUTER, - on=(Org.id == Team.organization)) - query = with_org.where((Org.id == organization) | (Org.id >> None)) + query = (query + .join(TeamMember, JOIN_LEFT_OUTER) + .join(Team, JOIN_LEFT_OUTER, on=((Team.id == TeamMember.team) & + (Team.organization == organization)))) class MatchingUserResult(object): def __init__(self, *args): + logger.debug("tuple: %s" % str(args)) + self.username = args[0] self.is_robot = args[2] if organization: - self.is_org_member = (args[1] == organization.username) + self.is_org_member = (args[1] != None) else: self.is_org_member = None