def delete_user(organization, username): user = get_user(organization, username) response = request( 'DELETE', '/user/{}/{}'.format(get_organization(organization), user['id'])) if response.status_code == 200: logging.info('User: {} Deleted'.format(user)) else: return response.status_code
def get_user(organization, user_name): try: response = request('GET', '/user/{}'.format(get_organization(organization))) assert (response.status_code == 200) data = response.json() for user in data: if user['name'] == user_name: return user except Exception as e: logging.warning(e)
def get_key(organization, username): user = get_user(organization, username) filename = '/tmp/{}_{}.zip'.format(organization, username) response = request( 'GET', '/key/{}/{}'.format(get_organization(organization), user['id'])) resp = response.json() urlKey = BASE_URL + resp['key_zip_url'] wget.download(urlKey, filename, False) try: os.path.isfile(filename) logging.info('Keys generated successfully') except Exception as e: logging.warning(e)
def disable_user(organization, username): user = get_user(organization, username) create = request('PUT', '/user/{}/{}'.format(get_organization(organization), user['id']), template={ 'name': user['name'], 'email': user['email'], 'disabled': True, }) if create.status_code == 200: logging.info('User: {} Disabled'.format(user)) else: return create.status_code
def create_user(organization, username, user_email): create = request('POST', '/user/{}'.format(get_organization(organization)), template={ 'name': username, 'email': user_email, 'disabled': False, }) if create.status_code == 200: logging.info('User: {} created'.format(username)) else: logging.warning(create.status_code) try: get_key(organization, username) mail_sender(organization, username, user_email) return logging.info('User created Successfully') except Exception as e: return logging.warning(e)
def create_from_csv(csvpath): csv_list = [] # Read csv and create a list with users with open(csvpath) as csvfile: reader = csv.DictReader(csvfile) for row in reader: csv_list.append(row) for i in csv_list: create = request('POST', '/user/{}'.format(get_organization( i['Organization'])), template={ 'name': i['Username'], 'email': i['Email'], 'disabled': False, }) if create.status_code == 200: logging.info('User {} created on pritunl server'.format( i['Username'])) get_key(i['Organization'], i['Username']) mail_sender(i['Organization'], i['Username'], i['Email']) else: return create.status_code
arguments = docopt(__doc__) if arguments['--debug']: LOGLEVEL = 'DEBUG' else: LOGLEVEL = 'INFO' logging.basicConfig( level=LOGLEVEL, format='%(asctime)s [%(levelname)s] %(message)s', handlers=[logging.StreamHandler()] ) if arguments['--get-oid']: organization = arguments["<org_name>"] response = get_organization(organization) logging.debug(response) if arguments['--get-user']: organization = arguments["<org_name>"] user = arguments["<user_name>"] response = get_user(organization, user) logging.debug(response) if arguments['--create-user']: organization = arguments["<org_name>"] user = arguments["<user_name>"] user_email = arguments["<user_email>"] response = create_user(organization, user, user_email) logging.debug(response)