def user_get_by_userids(userid): """ Returns users and organizations with the given userids (Lastuser internal userid). This is identical to get_by_userid but accepts multiple userids and returns a list of matching users and organizations """ if not userid: return api_result('error', error='no_userid_provided', _jsonp=True) users = User.all(buids=userid) orgs = Organization.all(buids=userid) return api_result( 'ok', _jsonp=True, results=[{ 'type': 'user', 'buid': u.buid, 'userid': u.buid, 'uuid': u.uuid, 'name': u.username, 'title': u.fullname, 'label': u.pickername, 'timezone': u.timezone, 'oldids': [o.buid for o in u.oldids], 'olduuids': [o.uuid for o in u.oldids], } for u in users] + [{ 'type': 'organization', 'buid': o.buid, 'userid': o.buid, 'uuid': o.uuid, 'name': o.name, 'title': o.fullname, 'label': o.pickername, } for o in orgs], )
def user_get_by_userids(userid): """ Returns users and organizations with the given userids (Lastuser internal userid). This is identical to get_by_userid but accepts multiple userids and returns a list of matching users and organizations """ if not userid: return api_result('error', error='no_userid_provided') users = User.all(userids=userid) orgs = Organization.all(userids=userid) return api_result('ok', results=[ {'type': 'user', 'buid': u.userid, 'userid': u.userid, 'name': u.username, 'title': u.fullname, 'label': u.pickername, 'timezone': u.timezone, 'oldids': [o.userid for o in u.oldids]} for u in users] + [ {'type': 'organization', 'buid': o.userid, 'userid': o.userid, 'name': o.name, 'title': o.fullname, 'label': o.pickername} for o in orgs] )
def org_team_get(): """ Returns a list of teams in the given organization. """ if not g.client.team_access: return api_result('error', error='no_team_access') org_userids = request.values.getlist('org') if not org_userids: return api_result('error', error='no_org_provided') organizations = Organization.all(userids=org_userids) if not organizations: return api_result('error', error='no_such_organization') orgteams = {} for org in organizations: # If client has access to team information, make a list of teams. # XXX: Should trusted clients have access anyway? Will this be an abuse # of the trusted flag? It was originally meant to only bypass user authorization # on login to HasGeek websites as that would have been very confusing to users. # XXX: Return user list here? if g.client in org.clients_with_team_access(): orgteams[org.userid] = [{'userid': team.userid, 'org': org.userid, 'title': team.title, 'owners': team == org.owners} for team in org.teams] return api_result('ok', org_teams=orgteams)
def org_team_get(): """ Returns a list of teams in the given organization. """ if not g.client.team_access: return api_result('error', error='no_team_access') org_userids = request.values.getlist('org') if not org_userids: return api_result('error', error='no_org_provided') organizations = Organization.all(userids=org_userids) if not organizations: return api_result('error', error='no_such_organization') orgteams = {} for org in organizations: # If client has access to team information, make a list of teams. # XXX: Should trusted clients have access anyway? Will this be an abuse # of the trusted flag? It was originally meant to only bypass user authorization # on login to HasGeek websites as that would have been very confusing to users. # XXX: Return user list here? if g.client in org.clients_with_team_access(): orgteams[org.userid] = [{ 'userid': team.userid, 'org': org.userid, 'title': team.title, 'owners': team == org.owners } for team in org.teams] return api_result('ok', org_teams=orgteams)