Example #1
0
def _do_login_user(user, next, remember_me=False):

    # Check if user account has been disabled
    if not _call_or_get(user.is_active):
        return ajax_response(message='Ваша електронна адреса не була підтверджена.'
                                     'Перевірте вашу електронну скриньку на наявність листа.'
                                     'У цьому листі натисніть підтвердити електронну адресу. '
                                     'Якщо лист не прийшов перейдіть за '
                                     '<a href="%s">цим</a> посиланням.' % url_for('user.resend_confirm_email'))

    # Check if user has a confirmed email address
    user_manager = current_app.user_manager
    if user_manager.enable_email and user_manager.enable_confirm_email \
            and not current_app.user_manager.enable_login_without_confirm_email \
            and not user.has_confirmed_email():
        url = url_for('user.resend_confirm_email')
        return ajax_response(message='Ваша електронна адреса не була підтверджена.'
                                     'Перевірте вашу електронну скриньку на наявність листа.'
                                     'У цьому листі натисніть підтвердити електронну адресу. '
                                      'Якщо лист не прийшов перейдіть за '
                                      '<a href="%s">цим</a> посиланням.' % url_for('user.resend_confirm_email'))

    # Use Flask-Login to sign in user
    #print('login_user: remember_me=', remember_me)
    login_user(user, remember=remember_me)

    # Send user_logged_in signal
    signals.user_logged_in.send(current_app._get_current_object(), user=user)

    # # Prepare one-time system message
    # flash(_('You have signed in successfully.'), 'success')
    #
    # # Redirect to 'next' URL
    print(next)
    return
Example #2
0
def login():
    default_next = url_for('home.home_page')

    user_manager = app.user_manager
    db_adapter = user_manager.db_adapter

    safe_next = _get_safe_next_param('next', user_manager.after_login_endpoint)
    safe_reg_next = _get_safe_next_param('reg_next',
                                         user_manager.after_register_endpoint)

    app.logger.info("A")

    # Initialize form
    login_form = user_manager.login_form(request.form)  # for login.html
    register_form = user_manager.register_form()  # for login_or_register.html
    if request.method != 'POST':
        login_form.next.data = register_form.next.data = safe_next
        login_form.reg_next.data = register_form.reg_next.data = safe_reg_next

    # If GET
    if request.method == "GET":
        # Immediately redirect already logged in users
        if _call_or_get(current_user.is_authenticated
                        ) and user_manager.auto_login_at_login:
            return redirect(safe_next if safe_next else default_next)
        return render_template('login.html')

    app.logger.info("A")

    # If POST
    if request.method == 'POST':
        email = request.form.get("email")
        password = request.form.get('password')
        remember_me = False  #request.form.get('remember_me');

        app.logger.info("A")
        user, user_email = user_manager.find_user_by_email(email)
        if user and user_manager.verify_password(password, user):
            app.logger.info("LOGGED IN???")
            login_user(user, remember=remember_me)

            #flash(_('You have signed in successfully.'), 'success')

            safe_next = user_manager.make_safe_url_function(
                login_form.next.data)

            return json.jsonify({
                'success': True,
                'url': safe_next if safe_next else default_next
            }), 200

    return json.jsonify({'success': False}), 400
Example #3
0
def login():
    """ Prompt for username/email and password and sign the user in."""
    user_manager = current_app.user_manager
    db_adapter = user_manager.db_adapter
    data = request.form
    next = request.args.get('next', _endpoint_url(user_manager.after_login_endpoint))
    reg_next = request.args.get('reg_next', _endpoint_url(user_manager.after_register_endpoint))

    # Immediately redirect already logged in users

    if _call_or_get(current_user.is_authenticated) and user_manager.auto_login_at_login:
        return redirect(next)
    user = None
    user_email = None

    # user = user_manager.find_user_by_username(data.get('user_name'))
    user = db_query(User).filter(or_(User.email == data.get('user_name'),
                                     User.username == data.get('user_name'))).first()
    if not user:
        return ajax_response(message="Ви ввели невірний логін або пароль")
    else:
        if user.password:
            if not verify_password(user_manager, data.get('password'), user.password):
                user = None
                return ajax_response(message="Ви ввели невірний логін або пароль")
        else:
            return ajax_response(message="Ви ввели невірний логін або пароль")
    user_email = None
    session['login_via'] = request.host
    remember_me = True if data.get('remember_me') else False
    if user and db_adapter.UserEmailClass:
        user_email = db_adapter.find_first_object(db_adapter.UserEmailClass,
                                                  user_id=int(user.get_id()), is_primary=True, )
    if not user and user_manager.enable_email:
        user, user_email = user_manager.find_user_by_email(data.get('user_name'))
    if user:
        _do_login_user(user, request.referrer, remember_me=remember_me)
    return ajax_response(message="Ви були успішно залоговані", reload_page = True)