Exemplo n.º 1
0
def mail_users_add():
    try:
        return add_mail_user(
            request.form.get("email", ""), request.form.get("password", ""), request.form.get("privileges", ""), env
        )
    except ValueError as e:
        return (str(e), 400)
Exemplo n.º 2
0
def mail_users_add():
    try:
        return add_mail_user(request.form.get('email', ''),
                             request.form.get('password', ''),
                             request.form.get('privileges', ''), env)
    except ValueError as e:
        return (str(e), 400)
Exemplo n.º 3
0
def mail_users_add():
    quota = request.form.get('quota', get_default_quota(env))
    try:
        return add_mail_user(request.form.get('email', ''),
                             request.form.get('password', ''),
                             request.form.get('privileges', ''), quota, env)
    except ValueError as e:
        return (str(e), 400)
Exemplo n.º 4
0
def mail_users_add():
	try:
		return add_mail_user(request.form.get('email', ''), request.form.get('password', ''), request.form.get('privileges', ''), env)
	except ValueError as e:
		return (str(e), 400)
Exemplo n.º 5
0
def mail_users_add():
	return add_mail_user(request.form.get('email', ''), request.form.get('password', ''), request.form.get('privileges', ''), env)
Exemplo n.º 6
0
def mail_users_add():
	return add_mail_user(request.form.get('email', ''), request.form.get('password', ''), request.form.get('privileges', ''), env)
Exemplo n.º 7
0
def create_bot_account_post(user):  # noqa: E501
    """Create a bot email account to send/receive messages from.

     # noqa: E501

    :param user: The bot user to send/receive messages from.
    :type user: dict | bytes

    :rtype: bool
    """
    bots_r = redis.StrictRedis(host='localhost', port=6379, db=2)
    deactivated_bots_r = redis.StrictRedis(host='localhost', port=6379, db=3)
    reactivating = False
    if connexion.request.is_json:
        user = User.from_dict(connexion.request.get_json())  # noqa: E501

    # Load mailinabox env variables
    env = utils.load_environment()

    # If we're reactivating a deactivated bot account, delete it from the deactivated list
    if user.email_address.encode('utf-8') in deactivated_bots_r.scan_iter():
        deactivated_bots_r.delete(user.email_address)
        reactivating = True

    # Load bot credentials file
    with open('{}/bcr.json'.format(seemail_path), 'r') as f:
        creds = json.load(f)

    # Generate a password and create the actual email account
    if user.email_address in creds:
        pwd = creds[user.email_address]
    else:
        pwd = generate_password()
        creds[user.email_address] = pwd
        with open('{}/bcr.json'.format(seemail_path), 'w') as f:
            json.dump(creds, f)

    # Add mailbox for bot
    res = mailconfig.add_mail_user(user.email_address, pwd, "", env)

    # Add to our Redis bot account db
    res = bots_r.set(user.email_address, 1)

    # Add first and last names to names sqlite db (separate from the mailinabox
    # db file to avoid messing up any of their management services)
    conn1 = sql.connect('{}/users.sqlite'.format(mail_home))
    conn2 = sql.connect('{}/user_names.sqlite'.format(mail_home))
    cur1 = conn1.cursor()
    cur2 = conn2.cursor()
    user_id = cur1.execute('select id from users where email="{}"'.format(user.email_address)).fetchone()[0]
    try:
        cur2.execute('insert into names values  ({}, "{}", "{}", "{}")'.format(user_id, 
            user.first_name, user.last_name, user.email_address))
    except sql.IntegrityError:
        pass # User already in the names DB, might hit this when reactivating an existing bot
    conn2.commit()
    cur1.close()
    cur2.close()
    conn1.close()
    conn2.close()

    if reactivating is False:
        logging.info("Added bot account {}".format(user.email_address))
    else:
        logging.info("Reactivated bot account {}".format(user.email_address))    

    return res
import os, os.path, re, json
import auth, utils
import csv
import sys
from mailconfig import get_mail_users, get_mail_users_ex, get_admins, add_mail_user, set_mail_password, remove_mail_user
from mailconfig import get_mail_user_privileges, add_remove_mail_user_privilege
from mailconfig import get_mail_aliases, get_mail_aliases_ex, get_mail_domains, add_mail_alias, remove_mail_alias

userfile = sys.argv[1]

env = utils.load_environment()
# print(userfile)
# print(env)

with open(userfile) as usercsv:
    rows = csv.reader(usercsv, delimiter=",")
    for row in rows:
        try:
            out = add_mail_user(row[0], row[1], "", env)
            print(row[0] + " -> " + out[0])
        except Exception as e:
            print(e)