Exemplo n.º 1
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for("main.dashboard"))

    form = LoginForm()
    if form.validate_on_submit():
        user = get_user_by_email(form.email.data)

        if user is None or not bcrypt.check_password_hash(
            user.password, form.password.data
        ):
            flash("Invalid email address or password")
            return render_template("auth/login.html", title="Sign In", form=form), 401

        login_user(user)
        session["user_name"] = user.name
        session["user_id"] = user.id
        session["is_admin"] = user.is_admin
        next_page = request.args.get("next")
        if not next_page or url_parse(next_page).netloc != "":
            next_page = url_for("main.dashboard")

        flash("You have been logged in", "success")
        return redirect(next_page)

    return render_template("auth/login.html", form=form)
Exemplo n.º 2
0
def re_authenticate():
    if login_fresh():  # How does this do ??
        return redirect(url_for('main.index'))
    form = LoginForm()
    if form.validate_on_submit() and current_user.validate_password(form.password.data):
        confirm_login()  # How does this do ??
        return redirect_back()
    return render_template('auth/login.html', form=form)
Exemplo n.º 3
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data.lower()).first()
        if user and user.validate_password(form.password.data):
            login_user(user, form.remember_me.data)
            flash('Login Success.', 'info')
            return redirect_back()
        flash('Invalid email or password.', 'warning')
    return render_template('auth/login.html', form=form)
Exemplo n.º 4
0
def login():
    '''auth.login()'''
    if current_user.is_authenticated:
        return redirect(request.args.get('next') or current_user.index_url)
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(
            email=form.email.data.strip().lower(),
            created=True,
            activated=True,
            deleted=False
        ).first()
        if user is not None:
            if not user.locked:
                if user.verify_password(form.password.data):
                    user.reset_invalid_login_count()
                    db.session.commit()
                    login_user(user, remember=form.remember_me.data)
                    if user.plays('协管员'):
                        send_email(
                            recipient=user.email,
                            subject='登录提醒',
                            template='auth/mail/login',
                            user=user,
                            timestamp=datetime_now(utc_offset=current_app.config['UTC_OFFSET'])
                        )
                    get_announcements(type_name='登录通知', flash_first=True)
                    add_user_log(user=user, event='登录系统', category='access')
                    return redirect(request.args.get('next') or user.index_url)
                user.increase_invalid_login_count()
                db.session.commit()
                if user.locked:
                    send_emails(
                        recipients=[staff.email for staff in User.all_can('管理用户').all() \
                            if staff.has_inner_domain_email],
                        subject='锁定用户:{}'.format(user.name_email),
                        template='auth/mail/lock_user',
                        user=user
                    )
                flash('登录失败:密码错误(第{}次)'.format(user.invalid_login_count), category='error')
                add_user_log(user=user, event='登录失败:密码错误(第{}次,来源:{})'.format(
                    user.invalid_login_count,
                    get_geo_info(
                        ip_address=request.headers.get('X-Forwarded-For', request.remote_addr),
                        show_ip=True
                    )
                ), category='access')
                return redirect(url_for('auth.login'))
            flash('登录失败:您的账户已被锁定', category='error')
            return redirect(url_for('auth.login'))
        flash('登录失败:无效的用户名或密码', category='error')
    return minify(render_template(
        'auth/login.html',
        form=form
    ))
Exemplo n.º 5
0
def login():
    form = LoginForm(**request.form)
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        login_user(user, remember=form.remember.data)
        next_url = request.args.get('next', 'home.index')
        return redirect(url_for(next_url))
    return render_template('home/index.html',
                           login_form=form,
                           registration_form=RegistrationForm(),
                           js_vars={'invalidFormButton': 'login-btn'})
Exemplo n.º 6
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if not user.password_hash:
            flash('该账号为第三方登录账号,请重新登录', 'warning')
            return redirect(url_for('.login'))
        if user and user.verify_password(form.password.data):
            login_user(user)
            return redirect(request.args.get('next') or url_for('web.index'))
        flash('密码错误', 'warning')
    return render_template('user_login.html', form=form)
Exemplo n.º 7
0
def login():
    title = 'Login'
    form = LoginForm()

    if request.method == 'POST':
        if form.validate_on_submit():
            content = request.get_json(force=True)
            print(content)
            print('------------------------------')
            print(request.headers)
            print(request.form)
            print('------------------------------')
            return make_response(jsonify({'Success': 42}))

    return render_template('auth/login.html', title=title, form=form)
Exemplo n.º 8
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))

    form = LoginForm()

    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user is not None and user.check_password(form.password.data):
            login_user(user, remember=form.remember_me.data)
            return redirect(url_for('main.index'))
        else:
            flash('Login Failed', 'danger')

    return render_template('views/auth/login.html', title='Login', form=form)
Exemplo n.º 9
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('d_main.index'))

    form = LoginForm()

    if form.validate_on_submit():
        user = User.query.filter_by(email = form.email.data).first()

        if user is None or not user.check_password(form.password.data):
            flash('Login Failed')
        else:
            login_user(user)
            redirect(url_for('d_main.index'))

    return render_template('auth/login.html', title = 'Login', form = form)
Exemplo n.º 10
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))

    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data.lower()).first()
        if user is not None and user.validate_password(form.password.data):
            if login_user(user, form.remember_me.data):
                flash("Login success", 'success')
                return redirect_back()
            else:
                flash("Your account is blocked", "danger")
                return redirect(url_for('main.index'))
        flash("Invalid email or password", 'warning')
    return render_template("auth/login.html", form=form)
Exemplo n.º 11
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.main_index'))

    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data.lower()).first()
        if user is not None and user.validate_password(form.password.data):
            if login_user(user, form.remember_me.data):
                flash('登录成功', 'info')
                return redirect_back()
            else:
                flash('您的账号已被锁定,请联系管理员', 'warning')
                return redirect(url_for('main.main_index'))
        flash('无效的邮箱或密码', 'warning')
    return render_template('auth/login.html', form=form)
Exemplo n.º 12
0
def login():
    # if current_user.is_authenticated:
        # return redirect(url_for('main.index'))
    form=LoginForm()
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        remember = form.remember_me.data
        user = User.query.filter_by(username=form.username.data).first()
        if user:
            if username == user.username and user.validate_password(password):
                login_user(user,remember)
                flash(u'登录成功!')
                return redirect(url_for('main.index'))
            elif not user.validate_password(password):
                flash(u'密码错误!')
        else:
            flash(u'用户不存在!')
    return render_template('auth/login.html', form=form)
Exemplo n.º 13
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter((User.username == form.user.data)
                                 | (User.email == form.user.data)).first()

        if user is None or not user.check_password(form.password.data):
            flash(_('Invalid username/email or password'), 'warning')
            return redirect(url_for('login'))

        login_user(user, remember=form.remember.data)
        app.logger.info('User %s logged in', user.username)

        next_page = request.args.get('next')
        if not next_page:
            next_page = url_for('index')
        return redirect(next_page)

    return render_template('auth/login.html', form=form)
Exemplo n.º 14
0
def login():
    form = LoginForm(request.form)
    if request.method == 'POST':
        if form.validate_on_submit():
            user = User.query.filter_by(email=form.email.data).first()
            if user is not None and user.is_correct_password(
                    form.password.data):
                user.authenticated = True
                db.session.add(user)
                db.session.commit()
                login_user(user)
                return redirect(url_for('home.home'))
            else:
                message = Markup(
                    "<strong>Error!</strong> Incorrect login credentials.")
                flash(message, 'danger')
        else:
            for fieldName, errorMessages in form.errors.items():
                for err in errorMessages:
                    flash(err, 'danger')

    return render_template('pages/login.html', form=form)
Exemplo n.º 15
0
def login():
    form = LoginForm()

    if form.validate_on_submit():
        print('entrei')
        user = User.query.filter_by(email=form.email.data).first()

        if user is not None and user.verify_password(form.password.data):
            login_user(user)
            next = request.args.get("next")

            if next is None or not next.starswith('/'):
                next = url_for("home.index")

            flash("Bem vindo " + user.name)
            flash("success")
            return redirect(next)

        else:
            flash("Erro ao logar")
            flash("error")

    return render_template("auth/login.html", form=form)
Exemplo n.º 16
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            current_app.logger.warning('Tried to login as %s from %s but doesn\'t exist', form.username.data, request.remote_addr)
            flash('Username ou password inválidos', 'danger')
            return redirect(url_for('main.login'))
        login_user(user, remember=form.remember_me.data)
        current_app.logger.info('%s logged in successfully from %s', user.username, request.remote_addr)
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('main.index')
        return redirect(next_page)
    return render_template(
        'auth/login.html',
        title='Iniciar Sessão',
        form=form,
        error_page=True,
        motd=motd()
    )
Exemplo n.º 17
0
Arquivo: auth.py Projeto: ttggaa/Y-VOD
def login():
    '''auth.login()'''
    if current_user.is_authenticated:
        return redirect(request.args.get('next') or current_user.index_url)
    form = LoginForm()
    if form.validate_on_submit():
        mac_address = get_mac_address_from_ip(ip_address=request.headers\
            .get('X-Forwarded-For', request.remote_addr))
        if mac_address is None:
            flash('无法获取设备信息', category='error')
            return redirect(
                url_for('auth.login', next=request.args.get('next')))
        device = Device.query.filter_by(mac_address=mac_address).first()
        if device is None:
            flash('设备未授权(MAC地址:{})'.format(mac_address), category='error')
            return redirect(
                url_for('auth.login', next=request.args.get('next')))
        # authenticate user via Y-System
        data = y_system_api_request(api='login-user',
                                    token_data={
                                        'email':
                                        form.email.data.strip().lower(),
                                        'password': form.password.data,
                                        'device': device.alias,
                                    })
        if data is None:
            flash('网络通信故障', category='error')
            return redirect(
                url_for('auth.login', next=request.args.get('next')))
        if verify_data_keys(data=data, keys=['error']):
            flash('登录失败:{}'.format(data.get('error')), category='error')
            return redirect(
                url_for('auth.login', next=request.args.get('next')))
        if not verify_data_keys(data=data, keys=['user_id']):
            flash('登录失败:用户信息无效', category='error')
            flash('初次登录时,请确认Y-System账号已经激活。', category='info')
            return redirect(
                url_for('auth.login', next=request.args.get('next')))
        user = User.query.get(data.get('user_id'))
        if user is None:
            # migrate user from Y-System
            data = y_system_api_request(api='migrate-user',
                                        token_data={
                                            'user_id': data.get('user_id'),
                                        })
            if data is None:
                flash('网络通信故障', category='error')
                return redirect(
                    url_for('auth.login', next=request.args.get('next')))
            if verify_data_keys(data=data, keys=['error']):
                flash('登录失败:{}'.format(data.get('error')), category='error')
                return redirect(
                    url_for('auth.login', next=request.args.get('next')))
            if not verify_data_keys(data=data,
                                    keys=['user_id', 'role', 'name']):
                flash('登录失败:用户信息无效', category='error')
                flash('初次登录时,请确认Y-System账号已经激活。', category='info')
                return redirect(
                    url_for('auth.login', next=request.args.get('next')))
            role = Role.query.filter_by(name=data.get('role')).first()
            if role is None:
                flash('登录失败:无效的用户角色“{}”'.format(data.get('role')),
                      category='error')
                return redirect(
                    url_for('auth.login', next=request.args.get('next')))
            user = User(id=data.get('user_id'),
                        role_id=role.id,
                        name=data.get('name'))
            db.session.add(user)
            db.session.commit()
            add_user_log(user=user, event='从Y-System导入用户信息', category='auth')
        if verify_data_keys(data=data, keys=['role', 'name']):
            if data.get('role') != user.role.name:
                role = Role.query.filter_by(name=data.get('role')).first()
                if role is not None:
                    user.role_id = role.id
                    db.session.add(user)
            if data.get('name') != user.name:
                user.name = data.get('name')
                db.session.add(user)
        if data.get('vb_progress') is not None:
            user.sync_punch(section=data.get('vb_progress'))
        if data.get('y_gre_progress') is not None:
            user.sync_punch(section=data.get('y_gre_progress'))
        if data.get('y_gre_aw_progress') is not None:
            user.sync_punch(section=data.get('y_gre_aw_progress'))
        login_user(user, remember=current_app.config['AUTH_REMEMBER_LOGIN'])
        add_user_log(user=user, event='登录系统', category='auth')
        db.session.commit()
        return redirect(request.args.get('next') or user.index_url)
    return minify(render_template('auth/login.html', form=form))