Skip to content

Instantly share code, notes, and snippets.

@pcstout
Created June 20, 2018 20:14
Show Gist options
  • Save pcstout/e103264e70a8fb1067302f3655808c58 to your computer and use it in GitHub Desktop.
Save pcstout/e103264e70a8fb1067302f3655808c58 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import sys, os, argparse, getpass
import synapseclient
class SynapseUserLookup:
def __init__(self, query, username=None, password=None):
self._query = query
self._username = username
self._password = password
def search(self):
print('Searching for: {0}'.format(self._query))
self.synapse_login()
results = self._synapse_client._findPrincipals(self._query)
for result in results:
user_profile = self._synapse_client.getUserProfile(result.userName)
print('{0} {1}'.format(user_profile.firstName, user_profile.lastName))
self._synapse_client.printEntity(user_profile)
def synapse_login(self):
print('Logging into Synapse...')
syn_user = os.getenv('SYNAPSE_USER') or self._username
syn_pass = os.getenv('SYNAPSE_PASSWORD') or self._password
if syn_user == None:
syn_user = input('Synapse username: ')
if syn_pass == None:
syn_pass = getpass.getpass(prompt='Synapse password: ')
self._synapse_client = synapseclient.Synapse()
self._synapse_client.login(syn_user, syn_pass, silent=True)
def main(argv):
parser = argparse.ArgumentParser()
parser.add_argument('query', metavar='query', help='The user\'s name or email.')
parser.add_argument('-u', '--username', help='Synapse username.', default=None)
parser.add_argument('-p', '--password', help='Synapse password.', default=None)
args = parser.parse_args()
SynapseUserLookup(
args.query
,username=args.username
,password=args.password
).search()
if __name__ == "__main__":
main(sys.argv[1:])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment