Beispiel #1
0
def create_local_user_account(email, user_type):
    form = AddUserForm(email=email, user_type=user_type)
    if form.email.validate(form):
        user = user_datastore.find_user(email=email)
        if user:
            print("User %s already exists" % email)
        else:
            user = User(email=email)
            if user_type == TypeOfUser.DEPT_USER.name:
                user.user_type = TypeOfUser.DEPT_USER
                user.capabilities = CAPABILITIES[TypeOfUser.DEPT_USER]
            elif user_type == TypeOfUser.RDU_USER.name:
                user.user_type = TypeOfUser.RDU_USER
                user.capabilities = CAPABILITIES[TypeOfUser.RDU_USER]
            elif user_type == TypeOfUser.DEV_USER.name:
                user.user_type = TypeOfUser.DEV_USER
                user.capabilities = CAPABILITIES[TypeOfUser.DEV_USER]
            else:
                print(
                    "Only DEPT_USER, RDU_USER or DEV_USER user types can be created with this command"
                )
                sys.exit(-1)

            db.session.add(user)
            db.session.commit()
            confirmation_url = create_and_send_activation_email(email,
                                                                app,
                                                                devmode=True)
            print("User account created. To complete process go to %s" %
                  confirmation_url)
    else:
        print(
            "email is not a gov.uk email address and has not been whitelisted")
Beispiel #2
0
def add_user():
    form = AddUserForm()
    if form.validate_on_submit():

        existing_user = User.query.filter(User.email.ilike(
            form.email.data)).first()
        if existing_user:
            message = "User: %s is already in the system" % existing_user.email
            flash(message, "error")
            return redirect(url_for("admin.users"))

        user = User(email=form.email.data)
        if form.user_type.data == TypeOfUser.DEPT_USER.name:
            user.user_type = TypeOfUser.DEPT_USER
            user.capabilities = CAPABILITIES[TypeOfUser.DEPT_USER]
        elif form.user_type.data == TypeOfUser.RDU_USER.name:
            user.user_type = TypeOfUser.RDU_USER
            user.capabilities = CAPABILITIES[TypeOfUser.RDU_USER]
        elif form.user_type.data == TypeOfUser.DEV_USER.name:
            user.user_type = TypeOfUser.DEV_USER
            user.capabilities = CAPABILITIES[TypeOfUser.DEV_USER]
        else:
            flash("Only RDU or DEPT users can be created using this page")
            abort(401)

        db.session.add(user)
        db.session.commit()
        create_and_send_activation_email(form.email.data, current_app)
        return redirect(url_for("admin.users"))

    return render_template("admin/add_user.html",
                           form=form,
                           errors=get_form_errors(forms=[form]))
Beispiel #3
0
def _create_user_with_password(email, user_type, password):
    user = User(email=email)
    user.user_type = user_type
    user.capabilities = CAPABILITIES[user_type]
    user.active = True
    user.password = hash_password(password)
    user.confirmed_at = datetime.utcnow()

    db.session.add(user)
    db.session.commit()