def get_matching_admined_teams(team_prefix, user_obj, limit=10): team_prefix_search = prefix_search(Team.name, team_prefix) admined_orgs = (_basequery.get_user_organizations( user_obj.username).switch(Team).join(TeamRole).where( TeamRole.name == "admin")) query = (Team.select(Team.id.distinct(), Team).join(User).switch(Team).join(TeamMember).where( team_prefix_search, Team.organization << (admined_orgs)).limit(limit)) return query
def get_matching_robots(name_prefix, username, limit=10): admined_orgs = (_basequery.get_user_organizations(username).switch( Team).join(TeamRole).where(TeamRole.name == "admin")) prefix_checks = False for org in admined_orgs: org_search = prefix_search(User.username, org.username + "+" + name_prefix) prefix_checks = prefix_checks | org_search user_search = prefix_search(User.username, username + "+" + name_prefix) prefix_checks = prefix_checks | user_search return User.select().where(prefix_checks).limit(limit)
def get_user_organizations(username): return _basequery.get_user_organizations(username)