Example #1
0
def _update_admin_user(Session, settings):
    """
    Reads the init settings at application start up and sets or add the
    admin user with the set password.
    The necessary setting keys are "lmkp.admin_password" and
    "lmkp.admin_email".
    """

    try:
        pw = settings["lmkp.admin_password"]
        email = settings["lmkp.admin_email"]
    except KeyError:
        raise Exception('"lmkp.admin_password" or "lmkp.admin_email" setting are missing ' "in configuration file.")

    # Try to get the admin user from the database
    admin_user = Session.query(User).filter(User.username == "admin").first()

    if admin_user == None:

        admin_group = Session.query(Group).filter(Group.name == "administrators").first()
        admin_user = User(username="******", password=pw, email=email)
        admin_user.groups.append(admin_group)
        Session.add(admin_user)

    else:
        admin_user.password = pw
        admin_user.email = email

    transaction.commit()