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")
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]))
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()