from mailu import manager, db
from mailu.admin import models
from passlib import hash


@manager.command
def flushdb():
    """ Flush the database
    """
    db.drop_all()


@manager.command
def initdb():
    """ Initialize the database
    """
    db.create_all()


@manager.command
def admin(localpart, domain_name, password):
    """ Create an admin user
    """
    domain = models.Domain.query.get(domain_name)
    if not domain:
        domain = models.Domain(name=domain_name)
        db.session.add(domain)
    user = models.User(
        localpart=localpart,
        domain=domain,
        global_admin=True,
        password=hash.sha512_crypt.encrypt(password)
    )
    db.session.add(user)
    db.session.commit()

@manager.command
def user(localpart, domain_name, password):
    """ Create an user
    """
    domain = models.Domain.query.get(domain_name)
    if not domain:
        domain = models.Domain(name=domain_name)
        db.session.add(domain)
    user = models.User(
        localpart=localpart,
        domain=domain,
        global_admin=False,
        password=hash.sha512_crypt.encrypt(password)
    )
    db.session.add(user)
    db.session.commit()

if __name__ == "__main__":
    manager.run()

@@ -1175,16 +1175,493 @@
 mmit()%0A%0A
+@manager.command%0Adef alias(localpart, domain_name, destination):%0A    %22%22%22 Create an alias%0A    %22%22%22%0A    domain = models.Domain.query.get(domain_name)%0A    if not domain:%0A        domain = models.Domain(name=domain_name)%0A        db.session.add(domain)%0A    alias = models.Alias(   %0A        localpart=localpart,%0A        domain=domain,%0A        destination=destination.split(','),%0A        email=%22%25s@%25s%22 %25 (localpart, domain_name)%0A    )%0A    db.session.add(alias)%0A    db.session.commit()%0A%0A
 if __nam

Add method to create an alias