コード例 #1
0
def register():
    """Renders the registration form and registers user on submit.
    Note that by default users are inactive and need to be activated inside
    flask_admin."""
    form = RegisterForm()

    if request.method == 'POST':
        if form.validate_on_submit():
            # Registers user
            new_user = User(
                username=form.username.data,
                email=form.email.data
            )

            # Hash password
            new_user.set_password(form.password.data)

            try:
                db.session.add(new_user)
                db.session.commit()
                flash('Registration successful. Please sign in.')
                return redirect(url_for('users.login'))
            except IntegrityError:
                flash('That username and/or email is already in use.', 'error')
                return render_template('users/register.html',
                                       form=form)
        else:
            flash_errors(form)

    return render_template('users/register.html', form=form)
コード例 #2
0
ファイル: views.py プロジェクト: uisky/flask-fish
def register():
    def check():
        email_exists = User.query.filter(db.func.lower(User.email) == form.email.data.lower()).first()
        if email_exists:
            flash('Пользователь с такой электронной почтой уже зарегистрирован.', 'danger')
            return False
        return True

    user = User()
    form = forms.RegisterForm(obj=user)

    if form.validate_on_submit() and check():
        if form.password.data != form.password2.data:
            flash('Введённые пароли не совпадают.')
        else:
            user.email = form.email.data
            user.name = form.name.data
            user.password_hash = User.hash_password(form.password.data)
            user.roles = 0

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

            return render_template('users/after_register.html', email=user.email)

    flash_errors(form)

    return render_template('users/register.html', form=form)
コード例 #3
0
ファイル: user.py プロジェクト: yzongyue/cookiecutter-flask
def change_password():
    form = PasswordForm()
    if form.validate_on_submit():
        current_user.set_password(form.password.data)
        current_user.save()
        return redirect(url_for('user.profile'))
    else:
        flash_errors(form)

    return render_extensions('users/change_password.html', resetform=form)
コード例 #4
0
ファイル: user.py プロジェクト: yzongyue/cookiecutter-flask
def change_username():
    form = UsernameForm()
    if form.validate_on_submit():
        current_user.username = form.username.data
        current_user.save()
        return redirect(url_for('user.profile'))
    else:
        flash_errors(form)

    return render_extensions('users/change_username.html', resetform=form)
コード例 #5
0
ファイル: views.py プロジェクト: ziquan111/cookiecutter-flask
def register():
    """Register new user."""
    form = RegisterForm(request.form, csrf_enabled=False)
    if form.validate_on_submit():
        User.create(username=form.username.data, email=form.email.data, password=form.password.data, active=True)
        flash('Thank you for registering. You can now log in.', 'success')
        return redirect(url_for('public.home'))
    else:
        flash_errors(form)
    return render_template('public/register.html', form=form)
コード例 #6
0
def login():
    """Login page."""
    login_form = LoginForm()
    if login_form.validate_on_submit():
        login_user(login_form.user)
        flash('You are logged in.', 'success')
        redirect_url = request.args.get('next') or url_for('user.members')
        return redirect(redirect_url)
    else:
        flash_errors(login_form)
    return render_template("public/login.html", login_form=login_form)
コード例 #7
0
ファイル: views.py プロジェクト: BartGo/flask-ucrm
def home():
    form = LoginForm(request.form)
    # Handle logging in
    if request.method == 'POST':
        if form.validate_on_submit():
            login_user(form.user)
            flash("You are logged in.", 'success')
            redirect_url = request.args.get("next") or url_for("user.members")
            return redirect(redirect_url)
        else:
            flash_errors(form)
    return render_template("public/home.html", form=form)
コード例 #8
0
def home():
    form = LoginForm(request.form)
    # Handle logging in
    if request.method == 'POST':
        if form.validate_on_submit():
            login_user(form.user)
            flash("You are logged in.", 'success')
            redirect_url = request.args.get("next") or url_for("user.members")
            return redirect(redirect_url)
        else:
            flash_errors(form)
    return render_template("public/home.html", form=form)
コード例 #9
0
def register():
    form = RegisterForm(request.form)
    if form.validate_on_submit():
        new_user = User(username=form.username.data,
                        email=form.email.data,
                        password=form.password.data)
        db_session.add(new_user)
        db_session.commit()
        flash("Thank you for registering. You can now log in.", 'success')
        return redirect(url_for('public.home'))
    else:
        flash_errors(form)
    return render_template('public/register.html', form=form)
コード例 #10
0
ファイル: views.py プロジェクト: ziquan111/cookiecutter-flask
def home():
    """Home page."""
    form = LoginForm(request.form)
    # Handle logging in
    if request.method == 'POST':
        if form.validate_on_submit():
            login_user(form.user)
            flash('You are logged in.', 'success')
            redirect_url = request.args.get('next') or url_for('user.members')
            return redirect(redirect_url)
        else:
            flash_errors(form)
    return render_template('public/home.html', form=form)
コード例 #11
0
def register():
    form = RegisterForm(request.form, csrf_enabled=False)
    if form.validate_on_submit():
        new_user = User.create(username=form.username.data,
                               first_name=form.first_name.data,
                               last_name=form.last_name.data,
                               email=form.email.data,
                               password=form.password.data,
                               active=True)
        flash("Thank you for registering. You can now log in.", 'success')
        return redirect(url_for('public.home'))
    else:
        flash_errors(form)
    return render_extensions('public/register.html', form=form)
def home():
    """Home page."""
    form = LoginForm(request.form)
    current_app.logger.info("Hello from the home page!")
    # Handle logging in
    if request.method == "POST":
        if form.validate_on_submit():
            login_user(form.user)
            flash("You are logged in.", "success")
            redirect_url = request.args.get("next") or url_for("user.members")
            return redirect(redirect_url)
        else:
            flash_errors(form)
    return render_template("public/home.html", form=form)
コード例 #13
0
def register():
    form = RegisterForm(request.form, csrf_enabled=False)
    if form.validate_on_submit():
        new_user = User(form.username.data, form.email.data, form.password.data)
        try:
            db.session.add(new_user)
            db.session.commit()
            flash("Thank you for registering. You can now log in.", 'success')
            return redirect(url_for('public.home'))
        except IntegrityError as err:
            print(err)
            flash("That username and/or email already exists. Try again.", 'warning')
    else:
        flash_errors(form)
    return render_template('register.html', form=form)
def register():
    """Register new user."""
    form = RegisterForm(request.form)
    if form.validate_on_submit():
        User.create(
            username=form.username.data,
            email=form.email.data,
            password=form.password.data,
            active=True,
        )
        flash("Thank you for registering. You can now log in.", "success")
        return redirect(url_for("public.home"))
    else:
        flash_errors(form)
    return render_template("public/register.html", form=form)
コード例 #15
0
def login():
    """Handle login request."""
    if current_user.is_authenticated:
        return redirect(url_for("auth.home"))
    form = LoginForm(request.form)
    if request.method == "POST" and form.validate():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not check_password_hash(user.password, form.password.data):
            flash("Invalid username/password")
            return render_template("login.html", form=form)
        login_user(user)
        app.logger.debug("User login successful | %s" % user.username)
        return redirect(url_for("auth.home"))
    else:
        flash_errors(form)
        app.logger.debug("User login failed")
    return render_template("login.html", form=form)
コード例 #16
0
def register():
    """Handle registration request"""
    if current_user.is_authenticated:
        return redirect(url_for('auth.home'))
    form = RegisterForm(request.form)
    if request.method == "POST" and form.validate_on_submit():
        password = generate_password_hash(form.password.data, method="sha256")
        user = User(first_name=form.first_name.data, last_name=form.last_name.data, username=form.username.data,
                    password=password)
        db.session.add(user)
        db.session.commit()
        login_user(user)
        app.logger.info("New user registered successfully using form | %s" % user.username)
        return redirect(url_for("auth.home"))
    else:
        app.logger.error("New user registration using form failed")
        flash_errors(form)
    return render_template("register.html", form=form)
コード例 #17
0
def login():
    """Renders the login form and logs in the user,
    if valid credentials are provided."""
    form = LoginForm()

    if request.method == 'POST':
        if form.validate_on_submit():
            # Login and validate the user
            user = get_user(form)
            login_user(user)

            flash('Logged in successfully.')

            return redirect(url_for('users.members'))
        else:
            flash_errors(form)

    return render_template('users/login.html', form=form)
コード例 #18
0
ファイル: views.py プロジェクト: nmaekawa/cookiecutter-flask
def home():
    """Home page."""
    form = LoginForm(request.form)

    # example of logger
    logger = logging.getLogger(current_app.name)
    logger.info('----- this is a log message from app: %s' % current_app.name)

    # Handle logging in
    if request.method == 'POST':
        if form.validate_on_submit():
            login_user(form.user)
            flash('You are logged in.', 'success')
            redirect_url = request.args.get('next') or url_for('user.members')
            return redirect(redirect_url)
        else:
            flash_errors(form)
    return render_template('public/home.html', form=form, version=app_version)
コード例 #19
0
ファイル: user.py プロジェクト: yzongyue/cookiecutter-flask
def reset_with_token(token):
    try:
        from {{cookiecutter.app_name}}.settings import Config

        ts = URLSafeTimedSerializer(Config.SECRET_KEY)
        email = ts.loads(token, salt="recover-key", max_age=86400)
    except:
        return render_template("404.html")

    form = PasswordForm()

    if form.validate_on_submit():
        emailuser = User.query.filter_by(email=email).first_or_404()
        emailuser.set_password(form.password.data)
        emailuser.save()
        return redirect(url_for('public.home'))
    else:
        flash_errors(form)

    return render_extensions('users/reset_with_token.html', resetform=form, token=token)
コード例 #20
0
ファイル: user.py プロジェクト: yzongyue/cookiecutter-flask
def reset():
    form = EmailForm()
    if form.validate_on_submit():
        emailuser = User.query.filter_by(email=form.email.data).first_or_404()

        subject = "Password reset requested"
        from {{cookiecutter.app_name}}.settings import Config

        ts = URLSafeTimedSerializer(Config.SECRET_KEY)
        token = ts.dumps(emailuser.email, salt='recover-key')

        recover_url = url_for('user.reset_with_token', token=token, _external=True)
        html = render_template('email/recover.html', recover_url=recover_url)

        msg = Message(html=html, recipients=[emailuser.email], subject=subject)
        mail.send(msg)

        return redirect(url_for('public.home'))
    else:
        flash_errors(form)

    return render_extensions('users/reset.html', resetform=form)