<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Re: [Seaside] Autologout implementation</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>I think he wanted the app to go back to the home page automatically when auto expiring. In which case you can just add a refresh periodical with lifetime just a tad longer than a session timeout.<BR>
<BR>
Cheers!<BR>
<BR>
-Boris (via BlackBerry)<BR>
<BR>
----- Original Message -----<BR>
From: seaside-bounces@lists.squeakfoundation.org &lt;seaside-bounces@lists.squeakfoundation.org&gt;<BR>
To: Seaside - general discussion &lt;seaside@lists.squeakfoundation.org&gt;<BR>
Sent: Sun Apr 27 11:40:45 2008<BR>
Subject: Re: [Seaside] Autologout implementation<BR>
<BR>
2008/4/27, Stefan Schmiedl &lt;s@xss.de&gt;:<BR>
&gt; How would you implement automatic logout after a given period of<BR>
&gt;&nbsp; inactivity?<BR>
<BR>
Set the session timeout to this value.<BR>
<BR>
Cheers<BR>
Philippe<BR>
<BR>
&gt;&nbsp; The app is running in a workshop, where a bunch of people use the same<BR>
&gt;&nbsp; machine to access their scheduled tasks and other stuff. They will often<BR>
&gt;&nbsp; leave &quot;their&quot; last page on the screen, so the goal donor requested an<BR>
&gt;&nbsp; automated reload of the starting page.<BR>
&gt;<BR>
&gt;&nbsp; I did this for another app (in IOWA on Ruby) by meta-refreshing to the<BR>
&gt;&nbsp; &quot;/logout&quot; page, which in turn expired the session and redirected to the<BR>
&gt;&nbsp; starting page.<BR>
&gt;<BR>
&gt;&nbsp; Below is what I came up with in Seaside. This decoration is<BR>
&gt;&nbsp; autmatically added to the pages if the users are in the autologout<BR>
&gt;&nbsp; category.<BR>
&gt;<BR>
&gt;&nbsp; Has anybody a better idea for this?<BR>
&gt;<BR>
&gt;&nbsp; Thanks,<BR>
&gt;&nbsp; s.<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp; Smalltalk.HS defineClass: #AutoLogoutDecoration<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; superclass: #{Seaside.WADecoration}<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; indexedType: #none<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private: false<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; instanceVariableNames: 'delay '<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classInstanceVariableNames: ''<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imports: ''<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; category: ''!<BR>
&gt;<BR>
&gt;&nbsp; &quot;-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &quot;!<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp; !HS.AutoLogoutDecoration class methodsFor: 'instance creation'!<BR>
&gt;<BR>
&gt;&nbsp; delay: seconds<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^(self new) delay: seconds;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yourself! !<BR>
&gt;<BR>
&gt;&nbsp; &quot;-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &quot;!<BR>
&gt;<BR>
&gt;<BR>
&gt;&nbsp; !HS.AutoLogoutDecoration methodsFor: 'updating'!<BR>
&gt;<BR>
&gt;&nbsp; updateRoot: root<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root redirectTo: self urlForExpiry asString<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay: self delay!<BR>
&gt;<BR>
&gt;&nbsp; urlForExpiry<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Continuation currentDo: [:cc | ^self session actionUrlForContinuation: cc].<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (self session) expire;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirect! !<BR>
&gt;<BR>
&gt;&nbsp; !HS.AutoLogoutDecoration methodsFor: 'accessing'!<BR>
&gt;<BR>
&gt;&nbsp; delay<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^delay!<BR>
&gt;<BR>
&gt;&nbsp; delay: anObject<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay := anObject! !<BR>
&gt;&nbsp; _______________________________________________<BR>
&gt;&nbsp; seaside mailing list<BR>
&gt;&nbsp; seaside@lists.squeakfoundation.org<BR>
&gt;&nbsp; <A HREF="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</A><BR>
&gt;<BR>
_______________________________________________<BR>
seaside mailing list<BR>
seaside@lists.squeakfoundation.org<BR>
<A HREF="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</A><BR>
</FONT>
</P>

</BODY>
</HTML>