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
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
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)