[Flask] Unable to set current_user.authenticated to True

sidwoodstock . sidwoodstock at gmail.com
Thu Jul 4 14:50:45 EDT 2019


Ahh okay I understand now.

I haven't tested this myself, but perhaps try {% if current_user %} as your
conditional since it ought to return None if no one is logged in.

-Scott

On Thu, Jul 4, 2019 at 8:56 AM <flask-request at python.org> wrote:

> Send Flask mailing list submissions to
>         flask at python.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://mail.python.org/mailman/listinfo/flask
> or, via email, send a message with subject or body 'help' to
>         flask-request at python.org
>
> You can reach the person managing the list at
>         flask-owner at python.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Flask digest..."
>
>
> Today's Topics:
>
>    1. Re: Flask Digest, Vol 49, Issue 5 (Abdul Mohammed)
>    2. Re: Flask Digest, Vol 49, Issue 6 (Abdul Mohammed)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 4 Jul 2019 16:22:42 +0100
> From: Abdul Mohammed <imonikemohammed at gmail.com>
> To: flask at python.org
> Subject: Re: [Flask] Flask Digest, Vol 49, Issue 5
> Message-ID:
>         <
> CAEKkz85XoPnseQ9_jF_0WcfKDruXLAKKCBp4+2k_FogNA8zVcQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Thanks Gergely for the response.
> Yes I am using Flask-Login and I think directly because this is how I
> import it:
>
> from flask_login import login_user
>
> My problem is not that I can't log in. I can log in fine. The problem is
> essentially that I can not log out. I am trying to use the value of
> current_user.is_authenticated to determine whether to show the "Sign in" or
> "Sign out" link. If True, it shows "Sign out" and "Sign in" when False.
> For some reason, the value remains False after I have logged in so the
> "Sign out" link never displays and so I am trapped in the app (Please save
> me!!!)
> because I can't log out. I hope I have made my problems clearer.
>
> Regards
>
> On Wed, Jul 3, 2019 at 5:04 PM <flask-request at python.org> wrote:
>
> > Send Flask mailing list submissions to
> >         flask at python.org
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> >         https://mail.python.org/mailman/listinfo/flask
> > or, via email, send a message with subject or body 'help' to
> >         flask-request at python.org
> >
> > You can reach the person managing the list at
> >         flask-owner at python.org
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of Flask digest..."
> >
> >
> > Today's Topics:
> >
> >    1. Re: Unable to set current_user.authenticated to True
> >       (Gergely Polonkai)
> >
> >
> > ----------------------------------------------------------------------
> >
> > Message: 1
> > Date: Tue, 2 Jul 2019 19:01:20 +0200
> > From: Gergely Polonkai <gergely at polonkai.eu>
> > To: Leni Kadali Mutungi <lenikmutungi at gmail.com>
> > Cc: flask <Flask at python.org>
> > Subject: Re: [Flask] Unable to set current_user.authenticated to True
> > Message-ID:
> >         <CACczBUJWEAoLjnsQSh5Z+3mVuzjZ1=Ly-=
> > zxtk3bMO+n-+-y3Q at mail.gmail.com>
> > Content-Type: text/plain; charset="utf-8"
> >
> > Hello,
> >
> > I assume you are using Flask-Login (either directly or via another
> > extension like Flask-Security). If this is the case, you can import
> > login_user and call it like login_user(user).
> >
> > If that does not work, you may want to check if the user is active (ie.
> not
> > disabled), as it is the most common culprit when a user can?t be logged
> in.
> >
> > Best,
> > Gergely
> >
> > On Mon, 1 Jul 2019, 19:03 Leni Kadali Mutungi, <lenikmutungi at gmail.com>
> > wrote:
> >
> > > I think you mean to set it as `current_user.is_authenticated = True`.
> > >
> > > On 7/1/19 6:14 PM, Abdul Mohammed wrote:
> > > > Hello everyone,
> > > >                   I am trying to toggle between "Sign in" and "Sign
> > > > out" links using the current_user.is_authenticated variable such that
> > > > when it returns False, the "Sign in" is displayed and when True the
> > > > "Sign out" link is displayed. At some point in the login code I set
> > > > current_user.authenticated = True. The thing is that by the I am
> > > > successfully logged in and presented with the next view, it is the
> > > > "Sign in" link that is still displayed. When I check
> > > > current_user.is_authenticated, it returns False, even though I had
> > > > explicitly set it to True. Please can anyone point out what I am
> might
> > > > be doing wrong? Here is my code:
> > > >
> > > > I have a base.html file that contains the "Sign in" and "Sign out"
> > > > links that is extended by the other templates:
> > > >
> > > > <ul class="nav navbar-nav navbar-right">
> > > >    {% if (current_user.is_authenticated) %}
> > > >    <li><a href="{{ url_for('logout') }}">Sign Out</a></li>
> > > >    {% else %}
> > > >    <li><a href="{{ url_for('index') }}">Sign In</a></li>
> > > >    {% endif %}
> > > > </ul>
> > > >
> > > > <body>
> > > > {% block page_content %}{% endblock %}
> > > > </body>
> > > >
> > > >
> > > >  When the app first loads in the browser it displays a login form,
> > > > login.html:
> > > >
> > > >  {% extends "base.html" %}
> > > >
> > > > {% block content %}
> > > >     {% import "bootstrap/wtf.html" as wtf %}
> > > >     {% block title %}Flasky - Login{% endblock %}
> > > >     {% block page_content %}
> > > >     <div class="page-header">
> > > >         <h1>Login</h1>
> > > >     </div>
> > > >     <div class="col-md-4">
> > > >         {{ wtf.quick_form(form) }}
> > > >     </div>
> > > >     {% endblock %}
> > > > {% endblock %}
> > > >
> > > > When a user logs in, it loads a template dashboard.html that displays
> > > > a map. The top part looks like this:
> > > >
> > > > {% extends "base.html" %}
> > > >
> > > > {% block page_content %}
> > > > <html>
> > > >  <head>
> > > >    <title>Lagos Map</title>
> > > >    <link rel="stylesheet"
> > > > href="https://unpkg.com/leaflet@1.1.0/dist/leaflet.css"
> > > >
> > >
> >
> integrity="sha512-wcw6ts8Anuw10Mzh9Ytw4pylW8+NAD4ch3lqm9lzAsTxg0GFeJgoAtxuCLREZSC5lUXdVyo/7yfsqFjQ4S+aKw=="
> > > >    crossorigin=""/>
> > > >    <script src="https://unpkg.com/leaflet@1.1.0/dist/leaflet.js"
> > > >
> > >
> >
> integrity="sha512-mNqn2Wg7tSToJhvHcqfzLMU6J4mkOImSPTxVZAdo+lcPlk+GhZmYgACEe0x35K7YzW1zJ7XyJV/TT1MrdXvMcA=="
> > > >    crossorigin=""></script>
> > > >    <script
> > > > src="
> > >
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.js
> > > "></script>
> > > >    <link rel="stylesheet"
> > > > href="
> > >
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.css
> > "
> > >
> > > > />
> > > >    <link rel="stylesheet"
> > > > href="
> > >
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.css
> > "
> > >
> > > > />
> > > >    <script
> > > > src="
> > >
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.js
> > > "></script>
> > > >    <script
> > > > src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js
> > > "></script>
> > > >   ...
> > > >   ...
> > > >
> > > > And these are the relevant routes:
> > > >
> > > > @app.route('/',methods=['GET','POST'])
> > > > def 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):
> > > >               user.authenticated = True
> > > >               current_user = user
> > > >               db.session.add(current_user)
> > > >               db.session.commit()
> > > >               login_user(current_user, form.remember_me.data)
> > > >               return redirect(request.args.get('next') or
> > > > url_for('dashboard'))
> > > >           flash('Invalid username or password.')
> > > >        return render_template('auth/login.html', form=form)
> > > >
> > > > @app.route('/dashboard')
> > > > def dashboard():
> > > >       return render_template("dashboard.html")
> > > >
> > > > Thank you for your time.
> > > >
> > > > _______________________________________________
> > > > Flask mailing list
> > > > Flask at python.org
> > > > https://mail.python.org/mailman/listinfo/flask
> > >
> > > --
> > > -- Kind regards,
> > > Leni Kadali Mutungi
> > >
> > > _______________________________________________
> > > Flask mailing list
> > > Flask at python.org
> > > https://mail.python.org/mailman/listinfo/flask
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> >
> http://mail.python.org/pipermail/flask/attachments/20190702/424f55cc/attachment-0001.html
> > >
> >
> > ------------------------------
> >
> > Subject: Digest Footer
> >
> > _______________________________________________
> > Flask mailing list
> > Flask at python.org
> > https://mail.python.org/mailman/listinfo/flask
> >
> >
> > ------------------------------
> >
> > End of Flask Digest, Vol 49, Issue 5
> > ************************************
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mail.python.org/pipermail/flask/attachments/20190704/29797e8e/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 2
> Date: Thu, 4 Jul 2019 16:55:18 +0100
> From: Abdul Mohammed <imonikemohammed at gmail.com>
> To: flask at python.org
> Subject: Re: [Flask] Flask Digest, Vol 49, Issue 6
> Message-ID:
>         <CAEKkz86CgWtkHuahmd9KDyWVbEOfvGs3qdk31O8youK8qQnO=
> g at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Thanks Scott.
> I just explained to Gergely that my problem is not logging in but getting
> the value of current_user.is_authenticated to change to True so that I
> can log out. I wasn't originally doing the current_user = user assignment.
> I could log in with either current_user or user. When the value of
> current_user.is_authenticated wouldn't change to True, I added it because i
> was just trying to see whether it would solve my problem. I will get rid of
> it
> but the problem is likely to remain.
>
> On Thu, Jul 4, 2019 at 5:26 AM <flask-request at python.org> wrote:
>
> > Send Flask mailing list submissions to
> >         flask at python.org
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> >         https://mail.python.org/mailman/listinfo/flask
> > or, via email, send a message with subject or body 'help' to
> >         flask-request at python.org
> >
> > You can reach the person managing the list at
> >         flask-owner at python.org
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of Flask digest..."
> >
> >
> > Today's Topics:
> >
> >    1. Re: Unable to set current_user.authenticated to True
> >       (sidwoodstock .)
> >    2. Re: Unable to set current_user.authenticated to True
> >       (Gergely Polonkai)
> >
> >
> > ----------------------------------------------------------------------
> >
> > Message: 1
> > Date: Wed, 3 Jul 2019 09:19:20 -0700
> > From: "sidwoodstock ." <sidwoodstock at gmail.com>
> > To: flask at python.org
> > Subject: Re: [Flask] Unable to set current_user.authenticated to True
> > Message-ID:
> >         <CALovGGPpEBH==M0jK7S4g2aH4v0oBp=Lnx--=
> > KV78LHGK2k8hA at mail.gmail.com>
> > Content-Type: text/plain; charset="utf-8"
> >
> > Also, if Gergely's suggestion doesn't work, you could try removing your
> > variable assignment of current_user = user. I see no practical reason to
> do
> > this, and since current_user is a built-in (and very handy) variable,
> maybe
> > that is somehow related to your issue?
> >
> > > > current_user = user
> >
> > and then just call login_user directly with your user you already have at
> > hand:
> >
> > > >               login_user(user, form.remember_me.data)
> >
> > -Scott
> >
> > On Wed, Jul 3, 2019 at 9:03 AM <flask-request at python.org> wrote:
> >
> > > Send Flask mailing list submissions to
> > >         flask at python.org
> > >
> > > To subscribe or unsubscribe via the World Wide Web, visit
> > >         https://mail.python.org/mailman/listinfo/flask
> > > or, via email, send a message with subject or body 'help' to
> > >         flask-request at python.org
> > >
> > > You can reach the person managing the list at
> > >         flask-owner at python.org
> > >
> > > When replying, please edit your Subject line so it is more specific
> > > than "Re: Contents of Flask digest..."
> > >
> > >
> > > Today's Topics:
> > >
> > >    1. Re: Unable to set current_user.authenticated to True
> > >       (Gergely Polonkai)
> > >
> > >
> > > ----------------------------------------------------------------------
> > >
> > > Message: 1
> > > Date: Tue, 2 Jul 2019 19:01:20 +0200
> > > From: Gergely Polonkai <gergely at polonkai.eu>
> > > To: Leni Kadali Mutungi <lenikmutungi at gmail.com>
> > > Cc: flask <Flask at python.org>
> > > Subject: Re: [Flask] Unable to set current_user.authenticated to True
> > > Message-ID:
> > >         <CACczBUJWEAoLjnsQSh5Z+3mVuzjZ1=Ly-=
> > > zxtk3bMO+n-+-y3Q at mail.gmail.com>
> > > Content-Type: text/plain; charset="utf-8"
> > >
> > > Hello,
> > >
> > > I assume you are using Flask-Login (either directly or via another
> > > extension like Flask-Security). If this is the case, you can import
> > > login_user and call it like login_user(user).
> > >
> > > If that does not work, you may want to check if the user is active (ie.
> > not
> > > disabled), as it is the most common culprit when a user can?t be logged
> > in.
> > >
> > > Best,
> > > Gergely
> > >
> > > On Mon, 1 Jul 2019, 19:03 Leni Kadali Mutungi, <lenikmutungi at gmail.com
> >
> > > wrote:
> > >
> > > > I think you mean to set it as `current_user.is_authenticated = True`.
> > > >
> > > > On 7/1/19 6:14 PM, Abdul Mohammed wrote:
> > > > > Hello everyone,
> > > > >                   I am trying to toggle between "Sign in" and "Sign
> > > > > out" links using the current_user.is_authenticated variable such
> that
> > > > > when it returns False, the "Sign in" is displayed and when True the
> > > > > "Sign out" link is displayed. At some point in the login code I set
> > > > > current_user.authenticated = True. The thing is that by the I am
> > > > > successfully logged in and presented with the next view, it is the
> > > > > "Sign in" link that is still displayed. When I check
> > > > > current_user.is_authenticated, it returns False, even though I had
> > > > > explicitly set it to True. Please can anyone point out what I am
> > might
> > > > > be doing wrong? Here is my code:
> > > > >
> > > > > I have a base.html file that contains the "Sign in" and "Sign out"
> > > > > links that is extended by the other templates:
> > > > >
> > > > > <ul class="nav navbar-nav navbar-right">
> > > > >    {% if (current_user.is_authenticated) %}
> > > > >    <li><a href="{{ url_for('logout') }}">Sign Out</a></li>
> > > > >    {% else %}
> > > > >    <li><a href="{{ url_for('index') }}">Sign In</a></li>
> > > > >    {% endif %}
> > > > > </ul>
> > > > >
> > > > > <body>
> > > > > {% block page_content %}{% endblock %}
> > > > > </body>
> > > > >
> > > > >
> > > > >  When the app first loads in the browser it displays a login form,
> > > > > login.html:
> > > > >
> > > > >  {% extends "base.html" %}
> > > > >
> > > > > {% block content %}
> > > > >     {% import "bootstrap/wtf.html" as wtf %}
> > > > >     {% block title %}Flasky - Login{% endblock %}
> > > > >     {% block page_content %}
> > > > >     <div class="page-header">
> > > > >         <h1>Login</h1>
> > > > >     </div>
> > > > >     <div class="col-md-4">
> > > > >         {{ wtf.quick_form(form) }}
> > > > >     </div>
> > > > >     {% endblock %}
> > > > > {% endblock %}
> > > > >
> > > > > When a user logs in, it loads a template dashboard.html that
> displays
> > > > > a map. The top part looks like this:
> > > > >
> > > > > {% extends "base.html" %}
> > > > >
> > > > > {% block page_content %}
> > > > > <html>
> > > > >  <head>
> > > > >    <title>Lagos Map</title>
> > > > >    <link rel="stylesheet"
> > > > > href="https://unpkg.com/leaflet@1.1.0/dist/leaflet.css"
> > > > >
> > > >
> > >
> >
> integrity="sha512-wcw6ts8Anuw10Mzh9Ytw4pylW8+NAD4ch3lqm9lzAsTxg0GFeJgoAtxuCLREZSC5lUXdVyo/7yfsqFjQ4S+aKw=="
> > > > >    crossorigin=""/>
> > > > >    <script src="https://unpkg.com/leaflet@1.1.0/dist/leaflet.js"
> > > > >
> > > >
> > >
> >
> integrity="sha512-mNqn2Wg7tSToJhvHcqfzLMU6J4mkOImSPTxVZAdo+lcPlk+GhZmYgACEe0x35K7YzW1zJ7XyJV/TT1MrdXvMcA=="
> > > > >    crossorigin=""></script>
> > > > >    <script
> > > > > src="
> > > >
> > >
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.js
> > > > "></script>
> > > > >    <link rel="stylesheet"
> > > > > href="
> > > >
> > >
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.css
> > > "
> > > >
> > > > > />
> > > > >    <link rel="stylesheet"
> > > > > href="
> > > >
> > >
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.css
> > > "
> > > >
> > > > > />
> > > > >    <script
> > > > > src="
> > > >
> > >
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.js
> > > > "></script>
> > > > >    <script
> > > > > src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js
> > > > "></script>
> > > > >   ...
> > > > >   ...
> > > > >
> > > > > And these are the relevant routes:
> > > > >
> > > > > @app.route('/',methods=['GET','POST'])
> > > > > def 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):
> > > > >               user.authenticated = True
> > > > >               current_user = user
> > > > >               db.session.add(current_user)
> > > > >               db.session.commit()
> > > > >               login_user(current_user, form.remember_me.data)
> > > > >               return redirect(request.args.get('next') or
> > > > > url_for('dashboard'))
> > > > >           flash('Invalid username or password.')
> > > > >        return render_template('auth/login.html', form=form)
> > > > >
> > > > > @app.route('/dashboard')
> > > > > def dashboard():
> > > > >       return render_template("dashboard.html")
> > > > >
> > > > > Thank you for your time.
> > > > >
> > > > > _______________________________________________
> > > > > Flask mailing list
> > > > > Flask at python.org
> > > > > https://mail.python.org/mailman/listinfo/flask
> > > >
> > > > --
> > > > -- Kind regards,
> > > > Leni Kadali Mutungi
> > > >
> > > > _______________________________________________
> > > > Flask mailing list
> > > > Flask at python.org
> > > > https://mail.python.org/mailman/listinfo/flask
> > > >
> > > -------------- next part --------------
> > > An HTML attachment was scrubbed...
> > > URL: <
> > >
> >
> http://mail.python.org/pipermail/flask/attachments/20190702/424f55cc/attachment-0001.html
> > > >
> > >
> > > ------------------------------
> > >
> > > Subject: Digest Footer
> > >
> > > _______________________________________________
> > > Flask mailing list
> > > Flask at python.org
> > > https://mail.python.org/mailman/listinfo/flask
> > >
> > >
> > > ------------------------------
> > >
> > > End of Flask Digest, Vol 49, Issue 5
> > > ************************************
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> >
> http://mail.python.org/pipermail/flask/attachments/20190703/c47bb246/attachment-0001.html
> > >
> >
> > ------------------------------
> >
> > Message: 2
> > Date: Thu, 4 Jul 2019 06:25:40 +0200
> > From: Gergely Polonkai <gergely at polonkai.eu>
> > To: "sidwoodstock ." <sidwoodstock at gmail.com>
> > Cc: flask <Flask at python.org>
> > Subject: Re: [Flask] Unable to set current_user.authenticated to True
> > Message-ID:
> >         <
> > CACczBUJaj67qxPCEi9Tmjku42QDxDsuVLmEGQGuFaC2nndT7eA at mail.gmail.com>
> > Content-Type: text/plain; charset="utf-8"
> >
> > No, modifying current_user directly is not possible (at least it won?t
> > propagate outside the function). current_user is a proxy object that
> points
> > to the logged in user in the current request. If you assign a different
> > value to it, its proxy nature goes away which is definitely not what you
> > want: in extreme cases it might introduce security issues where users can
> > access each the data of other.
> >
> > On Wed, 3 Jul 2019, 18:19 sidwoodstock ., <sidwoodstock at gmail.com>
> wrote:
> >
> > > Also, if Gergely's suggestion doesn't work, you could try removing your
> > > variable assignment of current_user = user. I see no practical reason
> to
> > do
> > > this, and since current_user is a built-in (and very handy) variable,
> > maybe
> > > that is somehow related to your issue?
> > >
> > > > > current_user = user
> > >
> > > and then just call login_user directly with your user you already have
> at
> > > hand:
> > >
> > > > >               login_user(user, form.remember_me.data)
> > >
> > > -Scott
> > >
> > > On Wed, Jul 3, 2019 at 9:03 AM <flask-request at python.org> wrote:
> > >
> > >> Send Flask mailing list submissions to
> > >>         flask at python.org
> > >>
> > >> To subscribe or unsubscribe via the World Wide Web, visit
> > >>         https://mail.python.org/mailman/listinfo/flask
> > >> or, via email, send a message with subject or body 'help' to
> > >>         flask-request at python.org
> > >>
> > >> You can reach the person managing the list at
> > >>         flask-owner at python.org
> > >>
> > >> When replying, please edit your Subject line so it is more specific
> > >> than "Re: Contents of Flask digest..."
> > >>
> > >>
> > >> Today's Topics:
> > >>
> > >>    1. Re: Unable to set current_user.authenticated to True
> > >>       (Gergely Polonkai)
> > >>
> > >>
> > >> ----------------------------------------------------------------------
> > >>
> > >> Message: 1
> > >> Date: Tue, 2 Jul 2019 19:01:20 +0200
> > >> From: Gergely Polonkai <gergely at polonkai.eu>
> > >> To: Leni Kadali Mutungi <lenikmutungi at gmail.com>
> > >> Cc: flask <Flask at python.org>
> > >> Subject: Re: [Flask] Unable to set current_user.authenticated to True
> > >> Message-ID:
> > >>         <CACczBUJWEAoLjnsQSh5Z+3mVuzjZ1=Ly-=
> > >> zxtk3bMO+n-+-y3Q at mail.gmail.com>
> > >> Content-Type: text/plain; charset="utf-8"
> > >>
> > >> Hello,
> > >>
> > >> I assume you are using Flask-Login (either directly or via another
> > >> extension like Flask-Security). If this is the case, you can import
> > >> login_user and call it like login_user(user).
> > >>
> > >> If that does not work, you may want to check if the user is active
> (ie.
> > >> not
> > >> disabled), as it is the most common culprit when a user can?t be
> logged
> > >> in.
> > >>
> > >> Best,
> > >> Gergely
> > >>
> > >> On Mon, 1 Jul 2019, 19:03 Leni Kadali Mutungi, <
> lenikmutungi at gmail.com>
> > >> wrote:
> > >>
> > >> > I think you mean to set it as `current_user.is_authenticated =
> True`.
> > >> >
> > >> > On 7/1/19 6:14 PM, Abdul Mohammed wrote:
> > >> > > Hello everyone,
> > >> > >                   I am trying to toggle between "Sign in" and
> "Sign
> > >> > > out" links using the current_user.is_authenticated variable such
> > that
> > >> > > when it returns False, the "Sign in" is displayed and when True
> the
> > >> > > "Sign out" link is displayed. At some point in the login code I
> set
> > >> > > current_user.authenticated = True. The thing is that by the I am
> > >> > > successfully logged in and presented with the next view, it is the
> > >> > > "Sign in" link that is still displayed. When I check
> > >> > > current_user.is_authenticated, it returns False, even though I had
> > >> > > explicitly set it to True. Please can anyone point out what I am
> > might
> > >> > > be doing wrong? Here is my code:
> > >> > >
> > >> > > I have a base.html file that contains the "Sign in" and "Sign out"
> > >> > > links that is extended by the other templates:
> > >> > >
> > >> > > <ul class="nav navbar-nav navbar-right">
> > >> > >    {% if (current_user.is_authenticated) %}
> > >> > >    <li><a href="{{ url_for('logout') }}">Sign Out</a></li>
> > >> > >    {% else %}
> > >> > >    <li><a href="{{ url_for('index') }}">Sign In</a></li>
> > >> > >    {% endif %}
> > >> > > </ul>
> > >> > >
> > >> > > <body>
> > >> > > {% block page_content %}{% endblock %}
> > >> > > </body>
> > >> > >
> > >> > >
> > >> > >  When the app first loads in the browser it displays a login form,
> > >> > > login.html:
> > >> > >
> > >> > >  {% extends "base.html" %}
> > >> > >
> > >> > > {% block content %}
> > >> > >     {% import "bootstrap/wtf.html" as wtf %}
> > >> > >     {% block title %}Flasky - Login{% endblock %}
> > >> > >     {% block page_content %}
> > >> > >     <div class="page-header">
> > >> > >         <h1>Login</h1>
> > >> > >     </div>
> > >> > >     <div class="col-md-4">
> > >> > >         {{ wtf.quick_form(form) }}
> > >> > >     </div>
> > >> > >     {% endblock %}
> > >> > > {% endblock %}
> > >> > >
> > >> > > When a user logs in, it loads a template dashboard.html that
> > displays
> > >> > > a map. The top part looks like this:
> > >> > >
> > >> > > {% extends "base.html" %}
> > >> > >
> > >> > > {% block page_content %}
> > >> > > <html>
> > >> > >  <head>
> > >> > >    <title>Lagos Map</title>
> > >> > >    <link rel="stylesheet"
> > >> > > href="https://unpkg.com/leaflet@1.1.0/dist/leaflet.css"
> > >> > >
> > >> >
> > >>
> >
> integrity="sha512-wcw6ts8Anuw10Mzh9Ytw4pylW8+NAD4ch3lqm9lzAsTxg0GFeJgoAtxuCLREZSC5lUXdVyo/7yfsqFjQ4S+aKw=="
> > >> > >    crossorigin=""/>
> > >> > >    <script src="https://unpkg.com/leaflet@1.1.0/dist/leaflet.js"
> > >> > >
> > >> >
> > >>
> >
> integrity="sha512-mNqn2Wg7tSToJhvHcqfzLMU6J4mkOImSPTxVZAdo+lcPlk+GhZmYgACEe0x35K7YzW1zJ7XyJV/TT1MrdXvMcA=="
> > >> > >    crossorigin=""></script>
> > >> > >    <script
> > >> > > src="
> > >> >
> > >>
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.js
> > >> > "></script>
> > >> > >    <link rel="stylesheet"
> > >> > > href="
> > >> >
> > >>
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.css
> > >> "
> > >> >
> > >> > > />
> > >> > >    <link rel="stylesheet"
> > >> > > href="
> > >> >
> > >>
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.css
> > >> "
> > >> >
> > >> > > />
> > >> > >    <script
> > >> > > src="
> > >> >
> > >>
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.js
> > >> > "></script>
> > >> > >    <script
> > >> > > src="
> https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js
> > >> > "></script>
> > >> > >   ...
> > >> > >   ...
> > >> > >
> > >> > > And these are the relevant routes:
> > >> > >
> > >> > > @app.route('/',methods=['GET','POST'])
> > >> > > def 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):
> > >> > >               user.authenticated = True
> > >> > >               current_user = user
> > >> > >               db.session.add(current_user)
> > >> > >               db.session.commit()
> > >> > >               login_user(current_user, form.remember_me.data)
> > >> > >               return redirect(request.args.get('next') or
> > >> > > url_for('dashboard'))
> > >> > >           flash('Invalid username or password.')
> > >> > >        return render_template('auth/login.html', form=form)
> > >> > >
> > >> > > @app.route('/dashboard')
> > >> > > def dashboard():
> > >> > >       return render_template("dashboard.html")
> > >> > >
> > >> > > Thank you for your time.
> > >> > >
> > >> > > _______________________________________________
> > >> > > Flask mailing list
> > >> > > Flask at python.org
> > >> > > https://mail.python.org/mailman/listinfo/flask
> > >> >
> > >> > --
> > >> > -- Kind regards,
> > >> > Leni Kadali Mutungi
> > >> >
> > >> > _______________________________________________
> > >> > Flask mailing list
> > >> > Flask at python.org
> > >> > https://mail.python.org/mailman/listinfo/flask
> > >> >
> > >> -------------- next part --------------
> > >> An HTML attachment was scrubbed...
> > >> URL: <
> > >>
> >
> http://mail.python.org/pipermail/flask/attachments/20190702/424f55cc/attachment-0001.html
> > >> >
> > >>
> > >> ------------------------------
> > >>
> > >> Subject: Digest Footer
> > >>
> > >> _______________________________________________
> > >> Flask mailing list
> > >> Flask at python.org
> > >> https://mail.python.org/mailman/listinfo/flask
> > >>
> > >>
> > >> ------------------------------
> > >>
> > >> End of Flask Digest, Vol 49, Issue 5
> > >> ************************************
> > >>
> > > _______________________________________________
> > > Flask mailing list
> > > Flask at python.org
> > > https://mail.python.org/mailman/listinfo/flask
> > >
> >
> > On Wed, 3 Jul 2019, 18:19 sidwoodstock ., <sidwoodstock at gmail.com>
> wrote:
> >
> > > Also, if Gergely's suggestion doesn't work, you could try removing your
> > > variable assignment of current_user = user. I see no practical reason
> to
> > do
> > > this, and since current_user is a built-in (and very handy) variable,
> > maybe
> > > that is somehow related to your issue?
> > >
> > > > > current_user = user
> > >
> > > and then just call login_user directly with your user you already have
> at
> > > hand:
> > >
> > > > >               login_user(user, form.remember_me.data)
> > >
> > > -Scott
> > >
> > > On Wed, Jul 3, 2019 at 9:03 AM <flask-request at python.org> wrote:
> > >
> > >> Send Flask mailing list submissions to
> > >>         flask at python.org
> > >>
> > >> To subscribe or unsubscribe via the World Wide Web, visit
> > >>         https://mail.python.org/mailman/listinfo/flask
> > >> or, via email, send a message with subject or body 'help' to
> > >>         flask-request at python.org
> > >>
> > >> You can reach the person managing the list at
> > >>         flask-owner at python.org
> > >>
> > >> When replying, please edit your Subject line so it is more specific
> > >> than "Re: Contents of Flask digest..."
> > >>
> > >>
> > >> Today's Topics:
> > >>
> > >>    1. Re: Unable to set current_user.authenticated to True
> > >>       (Gergely Polonkai)
> > >>
> > >>
> > >> ----------------------------------------------------------------------
> > >>
> > >> Message: 1
> > >> Date: Tue, 2 Jul 2019 19:01:20 +0200
> > >> From: Gergely Polonkai <gergely at polonkai.eu>
> > >> To: Leni Kadali Mutungi <lenikmutungi at gmail.com>
> > >> Cc: flask <Flask at python.org>
> > >> Subject: Re: [Flask] Unable to set current_user.authenticated to True
> > >> Message-ID:
> > >>         <CACczBUJWEAoLjnsQSh5Z+3mVuzjZ1=Ly-=
> > >> zxtk3bMO+n-+-y3Q at mail.gmail.com>
> > >> Content-Type: text/plain; charset="utf-8"
> > >>
> > >> Hello,
> > >>
> > >> I assume you are using Flask-Login (either directly or via another
> > >> extension like Flask-Security). If this is the case, you can import
> > >> login_user and call it like login_user(user).
> > >>
> > >> If that does not work, you may want to check if the user is active
> (ie.
> > >> not
> > >> disabled), as it is the most common culprit when a user can?t be
> logged
> > >> in.
> > >>
> > >> Best,
> > >> Gergely
> > >>
> > >> On Mon, 1 Jul 2019, 19:03 Leni Kadali Mutungi, <
> lenikmutungi at gmail.com>
> > >> wrote:
> > >>
> > >> > I think you mean to set it as `current_user.is_authenticated =
> True`.
> > >> >
> > >> > On 7/1/19 6:14 PM, Abdul Mohammed wrote:
> > >> > > Hello everyone,
> > >> > >                   I am trying to toggle between "Sign in" and
> "Sign
> > >> > > out" links using the current_user.is_authenticated variable such
> > that
> > >> > > when it returns False, the "Sign in" is displayed and when True
> the
> > >> > > "Sign out" link is displayed. At some point in the login code I
> set
> > >> > > current_user.authenticated = True. The thing is that by the I am
> > >> > > successfully logged in and presented with the next view, it is the
> > >> > > "Sign in" link that is still displayed. When I check
> > >> > > current_user.is_authenticated, it returns False, even though I had
> > >> > > explicitly set it to True. Please can anyone point out what I am
> > might
> > >> > > be doing wrong? Here is my code:
> > >> > >
> > >> > > I have a base.html file that contains the "Sign in" and "Sign out"
> > >> > > links that is extended by the other templates:
> > >> > >
> > >> > > <ul class="nav navbar-nav navbar-right">
> > >> > >    {% if (current_user.is_authenticated) %}
> > >> > >    <li><a href="{{ url_for('logout') }}">Sign Out</a></li>
> > >> > >    {% else %}
> > >> > >    <li><a href="{{ url_for('index') }}">Sign In</a></li>
> > >> > >    {% endif %}
> > >> > > </ul>
> > >> > >
> > >> > > <body>
> > >> > > {% block page_content %}{% endblock %}
> > >> > > </body>
> > >> > >
> > >> > >
> > >> > >  When the app first loads in the browser it displays a login form,
> > >> > > login.html:
> > >> > >
> > >> > >  {% extends "base.html" %}
> > >> > >
> > >> > > {% block content %}
> > >> > >     {% import "bootstrap/wtf.html" as wtf %}
> > >> > >     {% block title %}Flasky - Login{% endblock %}
> > >> > >     {% block page_content %}
> > >> > >     <div class="page-header">
> > >> > >         <h1>Login</h1>
> > >> > >     </div>
> > >> > >     <div class="col-md-4">
> > >> > >         {{ wtf.quick_form(form) }}
> > >> > >     </div>
> > >> > >     {% endblock %}
> > >> > > {% endblock %}
> > >> > >
> > >> > > When a user logs in, it loads a template dashboard.html that
> > displays
> > >> > > a map. The top part looks like this:
> > >> > >
> > >> > > {% extends "base.html" %}
> > >> > >
> > >> > > {% block page_content %}
> > >> > > <html>
> > >> > >  <head>
> > >> > >    <title>Lagos Map</title>
> > >> > >    <link rel="stylesheet"
> > >> > > href="https://unpkg.com/leaflet@1.1.0/dist/leaflet.css"
> > >> > >
> > >> >
> > >>
> >
> integrity="sha512-wcw6ts8Anuw10Mzh9Ytw4pylW8+NAD4ch3lqm9lzAsTxg0GFeJgoAtxuCLREZSC5lUXdVyo/7yfsqFjQ4S+aKw=="
> > >> > >    crossorigin=""/>
> > >> > >    <script src="https://unpkg.com/leaflet@1.1.0/dist/leaflet.js"
> > >> > >
> > >> >
> > >>
> >
> integrity="sha512-mNqn2Wg7tSToJhvHcqfzLMU6J4mkOImSPTxVZAdo+lcPlk+GhZmYgACEe0x35K7YzW1zJ7XyJV/TT1MrdXvMcA=="
> > >> > >    crossorigin=""></script>
> > >> > >    <script
> > >> > > src="
> > >> >
> > >>
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.js
> > >> > "></script>
> > >> > >    <link rel="stylesheet"
> > >> > > href="
> > >> >
> > >>
> >
> https://rawgit.com/k4r573n/leaflet-control-osm-geocoder/master/Control.OSMGeocoder.css
> > >> "
> > >> >
> > >> > > />
> > >> > >    <link rel="stylesheet"
> > >> > > href="
> > >> >
> > >>
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.css
> > >> "
> > >> >
> > >> > > />
> > >> > >    <script
> > >> > > src="
> > >> >
> > >>
> >
> https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.js
> > >> > "></script>
> > >> > >    <script
> > >> > > src="
> https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js
> > >> > "></script>
> > >> > >   ...
> > >> > >   ...
> > >> > >
> > >> > > And these are the relevant routes:
> > >> > >
> > >> > > @app.route('/',methods=['GET','POST'])
> > >> > > def 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):
> > >> > >               user.authenticated = True
> > >> > >               current_user = user
> > >> > >               db.session.add(current_user)
> > >> > >               db.session.commit()
> > >> > >               login_user(current_user, form.remember_me.data)
> > >> > >               return redirect(request.args.get('next') or
> > >> > > url_for('dashboard'))
> > >> > >           flash('Invalid username or password.')
> > >> > >        return render_template('auth/login.html', form=form)
> > >> > >
> > >> > > @app.route('/dashboard')
> > >> > > def dashboard():
> > >> > >       return render_template("dashboard.html")
> > >> > >
> > >> > > Thank you for your time.
> > >> > >
> > >> > > _______________________________________________
> > >> > > Flask mailing list
> > >> > > Flask at python.org
> > >> > > https://mail.python.org/mailman/listinfo/flask
> > >> >
> > >> > --
> > >> > -- Kind regards,
> > >> > Leni Kadali Mutungi
> > >> >
> > >> > _______________________________________________
> > >> > Flask mailing list
> > >> > Flask at python.org
> > >> > https://mail.python.org/mailman/listinfo/flask
> > >> >
> > >> -------------- next part --------------
> > >> An HTML attachment was scrubbed...
> > >> URL: <
> > >>
> >
> http://mail.python.org/pipermail/flask/attachments/20190702/424f55cc/attachment-0001.html
> > >> >
> > >>
> > >> ------------------------------
> > >>
> > >> Subject: Digest Footer
> > >>
> > >> _______________________________________________
> > >> Flask mailing list
> > >> Flask at python.org
> > >> https://mail.python.org/mailman/listinfo/flask
> > >>
> > >>
> > >> ------------------------------
> > >>
> > >> End of Flask Digest, Vol 49, Issue 5
> > >> ************************************
> > >>
> > > _______________________________________________
> > > Flask mailing list
> > > Flask at python.org
> > > https://mail.python.org/mailman/listinfo/flask
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> >
> http://mail.python.org/pipermail/flask/attachments/20190704/055df8bc/attachment.html
> > >
> >
> > ------------------------------
> >
> > Subject: Digest Footer
> >
> > _______________________________________________
> > Flask mailing list
> > Flask at python.org
> > https://mail.python.org/mailman/listinfo/flask
> >
> >
> > ------------------------------
> >
> > End of Flask Digest, Vol 49, Issue 6
> > ************************************
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mail.python.org/pipermail/flask/attachments/20190704/89bc8e49/attachment.html
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Flask mailing list
> Flask at python.org
> https://mail.python.org/mailman/listinfo/flask
>
>
> ------------------------------
>
> End of Flask Digest, Vol 49, Issue 7
> ************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/flask/attachments/20190704/04cbab56/attachment-0001.html>


More information about the Flask mailing list