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)
示例#3
0
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)
示例#4
0
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
示例#5
0
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
示例#7
0
    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)