[Kimchi-devel] [PATCH][Wok 2/2] Issue #133: Kimchi is logging out due to session timeout even when user is typing or using the webpage
Paulo Ricardo Paz Vital
pvital at linux.vnet.ibm.com
Wed Jul 20 21:33:17 UTC 2016
On Jul 20 04:38PM, Ramon Medeiros wrote:
>
>
> On 07/20/2016 03:06 PM, Paulo Ricardo Paz Vital wrote:
> > On Jul 20 02:24PM, Ramon Medeiros wrote:
> > > Adds a header "Session-Expires-On" returning the remaining time to
> > > expire the session.
> > >
> > > Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
> > > ---
> > > src/wok/template.py | 15 +++++++++++++++
> > > 1 file changed, 15 insertions(+)
> > >
> > > diff --git a/src/wok/template.py b/src/wok/template.py
> > > index 68243d9..43a34db 100644
> > > --- a/src/wok/template.py
> > > +++ b/src/wok/template.py
> > > @@ -22,14 +22,18 @@
> > > import cherrypy
> > > import errno
> > > import json
> > > +import time
> > > from Cheetah.Template import Template
> > > from glob import iglob
> > >
> > >
> > > +from wok import config as config
> > > from wok.config import paths
> > >
> > > +EXPIRES_ON = 'Session-Expires-On'
> > > REFRESH = 'robot-refresh'
> > >
> > > +
> > > def get_lang():
> > > cookie = cherrypy.request.cookie
> > > if "wokLang" in cookie.keys():
> > > @@ -110,6 +114,17 @@ def render_cheetah_file(resource, data):
> > >
> > >
> > > def render(resource, data):
> > > + # get timeout and last refresh
> > > + s_timeout = float(config.config.get("server", "session_timeout"))
> > > + cherrypy.session.acquire_lock()
> > > + last_req = cherrypy.session.get(REFRESH)
> > > + cherrypy.session.release_lock()
> > > +
> > > + # last_request is present: calculate remaining time
> > > + if last_req is not None:
> > > + session_expires = (float(last_req) + (s_timeout * 60)) - time.time()
> > > + cherrypy.response.headers[EXPIRES_ON] = session_expires
> > As commented by Aline on RFC, was requested on
> > https://github.com/kimchi-project/wok/issues/133#issuecomment-232752799
> > the time the session will expires since last request, so I guess the
> > correct formula is:
> >
> > session_expires = (float(last_req) + (s_timeout * 60))
> >
> > Doesn't?
> just check with Peter Pennings,
>
> he says that is easier to deal just with the remaining time.
OK! So, I guess it's reviewed-by :-)
>
> He is also copied here
> > > +
> > > if can_accept('application/json'):
> > > cherrypy.response.headers['Content-Type'] = \
> > > 'application/json;charset=utf-8'
> > > --
> > > 2.5.5
> > >
> > > _______________________________________________
> > > Kimchi-devel mailing list
> > > Kimchi-devel at ovirt.org
> > > http://lists.ovirt.org/mailman/listinfo/kimchi-devel
> > >
>
> --
>
> Ramon Nunes Medeiros
> Kimchi Developer
> Linux Technology Center Brazil
> IBM Systems & Technology Group
> Phone : +55 19 2132 7878
> ramonn at br.ibm.com
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>
--
Paulo Ricardo Paz Vital
Linux Technology Center, IBM Systems
http://www.ibm.com/linux/ltc/
More information about the Kimchi-devel
mailing list