Ejemplo n.º 1
1
def signup():
    """
    Create new user and add to DB. Redirect to leagues page.

    If form not valid, present form.

    If username is taken then flash message and re-present form.
    """
    if CURR_USER_KEY in session:
        return redirect('/leagues')

    form = RegisterUserForm()

    if form.validate_on_submit():
        try:
            user = User.signup(email=form.email.data,
                               username=form.username.data,
                               password=form.password.data)
            db.session.commit()

        except IntegrityError:
            flash("Username/Email already taken", 'danger')
            return render_template('signup.html', form=form)

        do_login(user)

        return redirect("/leagues")

    else:
        return render_template('signup.html', form=form)
Ejemplo n.º 2
0
def register_user():
    """Register a user by rendering registration form template and handling form submission."""

    form = RegisterUserForm()

    # if the CSRF token is validated after the form is submitted
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data

        new_user = User.register(username, password, email, first_name,
                                 last_name)

        db.session.add(new_user)

        try:
            db.session.commit()
            session['username'] = new_user.username
            flash("Welcome! Your account was successfully created!", "success")
            return redirect(f'/users/{new_user.username}')
        except IntegrityError:
            form.username.errors.append(
                "That username is taken. Please choose another username.")

    # if the form validation fails
    return render_template('/users/register.html', form=form)
Ejemplo n.º 3
0
def edit_user():
    """
    Handle Edit user
    """

    if not g.user:
        flash("Access unauthoriezed.", "danger")
        return redirect("/")

    user = User.query.get_or_404(g.user.id)
    signup_form = RegisterUserForm(obj=user)

    if signup_form.validate_on_submit():
        if User.authenticate(signup_form.username.data.lower(),
                             signup_form.password.data):
            user = User.query.get(g.user.id)

            user.username = signup_form.username.data.lower()
            user.password = signup_form.password.data
            user.image_url = signup_form.image_url.data
            user.bio = signup_form.bio.data
            user.location = signup_form.location.data

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

            flash("User's info updated", "success")
            return redirect(f"/users/{g.user.id}")
        else:
            flash("wrong password", "danger")
            return redirect(f"/users/{g.user.id}")

    return render_template(f"/users/{g.user.id}", signup_form=signup_form)
Ejemplo n.º 4
0
def register():
    form = RegisterUserForm()
    # вывод списка стран
    countries_list = [
        (country, country) for country in
        [line.strip() for line in open('data/countries.txt').readlines()]
    ]
    form.country.choices = countries_list
    if request.method == 'POST' and form.validate_on_submit():
        ans = check_new_user(form)
        if ans != 'OK':
            attr = getattr(form, ans[0])
            attr.errors.append(ans[1])
            return render_template('register.html',
                                   form=form,
                                   title='Register')
        user = User(name=form.name.data,
                    surname=form.surname.data,
                    username=form.username.data,
                    email=form.email.data,
                    description=form.description.data,
                    country=form.country.data,
                    age=form.age.data,
                    register_date=datetime.datetime.now())
        user.set_password(form.password.data)
        sesion = db_session.create_session()
        sesion.add(user)
        sesion.commit()
        sesion.close()
        return redirect(url_for('authen.login'))
    return render_template('register.html', form=form, title='Register')
Ejemplo n.º 5
0
    def post(self):
        form = RegisterUserForm()
        print 'enter registerview'
        if not form.validate_on_submit():
            return form.errors,422
        pwd = base64.decodestring(form.password.data)
        user = User(email = form.email.data, password = pwd,firstName = form.firstName.data, lastName = form.lastName.data, phone= form.phone.data,association = form.association.data)
        logentry = Log(datetime.datetime.utcnow(), 'Test door', user.firstName + ' ' + user.lastName, user.email, 'User registered ' + user.firstName + ' ' + user.lastName + ' ' + user.email , 'User registered', 'L1', 1, 'Web based')

        try:
            db.session.add(logentry)
            db.session.commit()
            db.session.add(user)
            db.session.commit()
        except IntegrityError:
            return make_response(jsonify({'error': 'eMail already registered'}), 400)

        # if activted send email
        if form.sendWelcomeMail.data != None:
            print 'sendWelcomeMail is ' + str(form.sendWelcomeMail.data)
            if form.sendWelcomeMail.data == 1:
                print 'try to send welcome mail'
                try:
                    send_email("Welcome to %s. You successfully registered" % 'RoseGuarden',
                                MAIL_USERNAME,
                                [user.email],
                                render_template("welcome_mail.txt",
                                user=user),
                                render_template("welcome_mail.html",
                                user=user))
                except:
                    print 'unable to send mail'
                    return '',201
        return '', 201
Ejemplo n.º 6
0
def register_new_user():
    """This view function renders the register form on the GET request and registers a new user on the post request"""

    form = RegisterUserForm()
    # Check that the form data is available and validated through Flask WT-forms and add this new user to the db
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data

        new_user = User.register(username, password, email, first_name,
                                 last_name)
        db.session.add(new_user)
        # To avoid a trying to register with an existing username and our code breaking, we except the IntegrityError
        # imported from sqlalchemy on commit. This way the user is notified to pick a new username and is redirected
        #back to the register form
        try:
            db.session.commit()
        except IntegrityError:
            form.username.errors.append(
                "Username is already taken, pick another")
            return render_template("register.html", form=form)
    #To make sure that a user stays logged in after registering, the username is added to the session
        session["username"] = new_user.username
        flash("Welcome, your account has succesffully been created", "success")
        return redirect(f"/users/{new_user.username}")

    return render_template("register.html", form=form)
Ejemplo n.º 7
0
def register_user():
    """ Shows a form to register a new user. """

    if "username" in session:
        flash("You're already logged in!")
        return redirect(f'/users/{session["username"]}')

    form = RegisterUserForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data
        is_admin = form.is_admin.data

        user = User.register(username, password, email, first_name,
                             last_name, is_admin)

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

        session['username'] = user.username

        return redirect(f'/users/{user.username}')

    return render_template("register.html", form=form)
Ejemplo n.º 8
0
def register():
	if current_user.is_authenticated:
		return redirect (url_for ('index.index'))

	form = RegisterUserForm ()
	if form.validate_on_submit ():
		form.create_user ()
		flash ('注册成功, 请登录', 'success')
		return redirect (url_for ('index.index'))
	return render_template ('user/register.html', form=form, active='user_register')
Ejemplo n.º 9
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        new_user = User.create(email=form.email.data,
                               password=form.password.data,
                               active=True,
                               role_id=1)
        login_user(new_user)
        redirect_url = request.args.get('next') or url_for("groups")
        return redirect(redirect_url)
    return render_template("register.html", form=form)
Ejemplo n.º 10
0
def register_user():
    """ renders user registation html; handles register user form submission"""

    if session.get("username"):
        return redirect(f"users/{session['username']}")

    form = RegisterUserForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data

        # write custom validator for this, separate concerns?
        curr_usernames = [
            u.username for u in db.session.query(User.username).all()
        ]

        curr_user_emails = [
            u.email for u in db.session.query(User.email).all()
        ]

        if username in curr_usernames and email not in curr_user_emails:
            form.username.errors = ["Username already exists!"]
            return render_template("register_user_form.html", form=form)

        if email in curr_user_emails and username not in curr_usernames:
            form.email.errors = ["Email already in use!"]
            return render_template("register_user_form.html", form=form)

        if email in curr_user_emails and username in curr_usernames:
            form.username.errors = ["Username already exists!"]
            form.email.errors = ["Email already in use!"]
            return render_template("register_user_form.html", form=form)

        else:
            user = User.register(username=username,
                                 password=password,
                                 email=email,
                                 first_name=first_name,
                                 last_name=last_name)

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

            session["username"] = user.username
            flash("Sign Up Complete!")

            return redirect(f"/users/{session['username']}")

    else:
        return render_template("register_user_form.html", form=form)
Ejemplo n.º 11
0
    def post(self):
        form = RegisterUserForm()
        print "enter registerview"
        if not form.validate_on_submit():
            return form.errors, 422
        pwd = base64.decodestring(form.password.data)
        user = User(
            email=form.email.data,
            password=pwd,
            firstName=form.firstName.data,
            lastName=form.lastName.data,
            phone=form.phone.data,
            association=form.association.data,
        )
        logentry = Log(
            datetime.datetime.utcnow(),
            "Test door",
            user.firstName + " " + user.lastName,
            user.email,
            "User registered " + user.firstName + " " + user.lastName + " " + user.email,
            "User registered",
            "L1",
            1,
            "Web based",
        )

        try:
            db.session.add(logentry)
            db.session.commit()
            db.session.add(user)
            db.session.commit()
        except IntegrityError:
            return make_response(jsonify({"error": "eMail already registered"}), 400)

        # if activted send email
        if form.sendWelcomeMail.data != None:
            print "sendWelcomeMail is " + str(form.sendWelcomeMail.data)
            if form.sendWelcomeMail.data == 1:
                print "try to send welcome mail"
                try:
                    send_email(
                        "Welcome to %s. You successfully registered" % "RoseGuarden",
                        MAIL_USERNAME,
                        [user.email],
                        render_template("welcome_mail.txt", user=user),
                        render_template("welcome_mail.html", user=user),
                    )
                except:
                    print "unable to send mail"
                    return "", 201
        return "", 201
Ejemplo n.º 12
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        password_hash_and_salted = generate_password_hash(password=request.form["password"],
                                                          method="pbkdf2:sha256", salt_length=8)
        new_user = User(name=request.form["name"], email=request.form["email"], password=password_hash_and_salted)
        db.session.add(new_user)
        try:
            db.session.commit()
        except Error or IntegrityError:
            flash("You've already signed up with that email, log in instead!")
            return redirect(url_for("login"))
        else:
            login_user(new_user)
            return redirect(url_for("get_all_posts"))
    return render_template("register.html.j2", form=form)
Ejemplo n.º 13
0
def register():
    form = RegisterUserForm()

    if form.validate_on_submit():
        #Login the user and generate session["user_id"] key.
        user = User.register(username=form.username.data,
                             password=form.password.data,
                             first_name=form.first_name.data,
                             last_name=form.last_name.data,
                             email=form.email.data)
        db.session.add(user)
        db.session.commit()
        session["user_id"] = user.id
        return redirect(f"/users/{user.username}")

    return render_template("register.html", form=form)
Ejemplo n.º 14
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        new_user = User(
            email=request.form['email'],
            password=generate_password_hash(request.form['password'],
                                            method='pbkdf2:sha256',
                                            salt_length=8),
        )
        db.session.add(new_user)
        db.session.commit()
        login_user(new_user)
        return redirect(url_for('search'))
    return render_template('register.html',
                           form=form,
                           logged_in=current_user.is_authenticated)
Ejemplo n.º 15
0
def register():
    """ Register user: produce form & handle form submission."""
    form = RegisterUserForm()
    if form.validate_on_submit():
        form_data = {
            key: value
            for (key, value) in form.data.items() if key in REGISTER_WHITELIST
        }

        user = User.register(**form_data)
        db.session.add(user)
        db.session.commit()

        session[USER_ID] = user.username

        return redirect(f"/users/{user.username}")
    else:
        return render_template("register_user.html", form=form)
Ejemplo n.º 16
0
def handle_register_form():
    form = RegisterUserForm()

    # If POST & form valid
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data

        new_user = User.register(username, password, email, first_name, last_name)
        
        session['username'] = new_user.username

        return redirect(f"/users/{username}")

    return render_template('register.html', form=form)
Ejemplo n.º 17
0
def register_user():
    """Show a form that when submitted will register/create a user."""
    form = RegisterUserForm()
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data
        new_user = User.register(username, password, email, first_name,
                                 last_name)
        db.session.add(new_user)
        db.session.commit()
        session["username"] = user.username
        flash("You have Sucessfully Created Your Account")
        return redirect("/secret")
    else:
        return render_template("register.html", form=form)
Ejemplo n.º 18
0
def register_user_form():
    if 'user_username' in session:
        return redirect(f"/user/{session['user_username']}")
    form = RegisterUserForm()
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        new_user = User.register(username, password)

        new_user.email = form.email.data
        new_user.first_name = form.first_name.data
        new_user.last_name = form.last_name.data
        sess.add(new_user)
        sess.commit()
        session['user_username'] = new_user.username
        flash('Successfully Registered')
        return redirect(f'/user/{new_user.username}')
    else:
        return render_template('register.html', form=form)
Ejemplo n.º 19
0
def signup():
    """
    Handle user signup.

    Create new user and add to DB. Redirect to Homepage.

    If form not valid, present form.

    If Username already exist, flash message and re-present form. 
    """

    signup_form = RegisterUserForm()

    if signup_form.validate_on_submit():
        try:
            user = User.signup(username=signup_form.username.data.lower(),
                               password=signup_form.password.data,
                               image_url=signup_form.image_url.data
                               or User.image_url.default.arg,
                               location=signup_form.location.data,
                               bio=signup_form.bio.data)
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", "danger")
            return render_template(
                "/",
                signup_form=signup_form,
            )

        do_login(user)

        return redirect("/")

    login_form = LoginForm()

    return render_template("homepage.html",
                           signup_form=signup_form,
                           login_form=login_form)
Ejemplo n.º 20
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        name = form.name.data
        email = form.email.data
        password_hash = generate_password_hash(form.password.data,
                                               method='pbkdf2:sha256',
                                               salt_length=8)
        user = User.query.filter_by(email=email).first()
        if user:
            flash("Email already exists.")
            return redirect(url_for('login'))
        else:
            new_user = User(name=name, email=email, password=password_hash)
            db.session.add(new_user)
            db.session.commit()
            login_user(new_user)
            return redirect(url_for('get_all_posts'))

    return render_template("register.html",
                           form=form,
                           current_user=current_user)
Ejemplo n.º 21
0
def register():

    if "username" in session:
        return redirect(f"/users/{session['username']}")
    form = RegisterUserForm()

    if form.validate_on_submit():
        user_attrs = {
            'username': form.username.data,
            'password': form.password.data,
            'email': form.email.data,
            'first_name': form.first_name.data,
            'last_name': form.last_name.data
        }

        # new_user = User(**user_attrs)
        new_user = User.register(**user_attrs)
        db.session.add(new_user)
        db.session.commit()

        return redirect(f'/users/{new_user.username}')
    else:
        return render_template('register.html', form=form)
Ejemplo n.º 22
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        username = form.username.data
        pwd = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data

        new_user = User.register(username, pwd, email, first_name, last_name)

        db.session.add(new_user)
        db.session.commit()

        session['username'] = new_user.username

        return redirect(f'/users/{session["username"]}')

    else:
        if 'username' in session:
            flash("You already logged in", 'secondary')
            return redirect("/")
        return render_template("register.html", form=form)
Ejemplo n.º 23
0
def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        email = form.email.data
        first_name = form.first_name.data
        last_name = form.last_name.data
        try:
            user = User.register(username=username,
                                 password=password,
                                 email=email,
                                 first_name=first_name,
                                 last_name=last_name)
            db.session.add(user)
            db.session.commit()
            session['username'] = user.username
            return redirect(f'/users/{user.username}')
        except:
            form.username.errors = ['Username might be used already']
            form.email.errors = ['Or Email might be used already']
            return render_template('register.html', form=form)
    return render_template('register.html', form=form)
Ejemplo n.º 24
0
    def post(self):
        form = RegisterUserForm()
        print 'enter registerview'
        if not form.validate_on_submit():
            return form.errors, 422
        pwd = base64.decodestring(form.password.data)
        user = User(email=form.email.data, password=pwd, firstName=form.firstName.data, lastName=form.lastName.data,
                    phone=form.phone.data, association=form.association.data)
        logentry = Action(datetime.datetime.utcnow(), config.NODE_NAME, user.firstName + ' ' + user.lastName, user.email,
                       'User registered ' + user.firstName + ' ' + user.lastName + ' ' + user.email, 'User registered',
                       'L2', 1, 'Web based')

        try:
            db.session.add(logentry)
            db.session.commit()
            db.session.add(user)
            db.session.commit()
        except IntegrityError:
            return make_response(jsonify({'error': 'eMail already registered'}), 400)

        # if activted send email
        if form.sendWelcomeMail.data != None:
            print 'sendWelcomeMail is ' + str(form.sendWelcomeMail.data)
            if form.sendWelcomeMail.data == 1:
                print 'try to send welcome mail'
                try:
                    send_email("Welcome to %s. You successfully registered" % 'RoseGuarden',
                               config.MAIL_USERNAME,
                               [user.email],
                               render_template("welcome_mail.txt",
                                               user=user),
                               render_template("welcome_mail.html",
                                               user=user))
                except:
                    print 'unable to send mail'
                    return '', 201
        return '', 201