--- login_orig.py	2006-04-18 20:55:43.000000000 +0200
+++ login.py	2006-04-22 09:12:10.659497968 +0200
@@ -9,8 +9,8 @@
     @copyright: 2006 by Thomas Waldmann
     @license: GNU GPL, see COPYING for details.
 """
-
-from MoinMoin import user, wikiutil, userform
+import time
+from MoinMoin import user, wikiutil, userform, auth
 from MoinMoin.Page import Page
 
 def execute(pagename, request):
@@ -36,6 +36,10 @@
         if islogin: # user pressed login button
             # Trying to login with a user name and a password
             # Require valid user name
+            expires = float(form.get('RememberFor', [''])[0])
+            request.cfg.cookie_lifetime = expires 
+            auth.deleteCookie(request)
+            
             name = form.get('name', [''])[0]
             if not user.isValidName(request, name):
                  error = _("""Invalid user name {{{'%s'}}}.
@@ -46,17 +50,30 @@
             elif not user.getUserId(request, name):
                 error = _('Unknown user name: {{{"%s"}}}. Please enter'
                              ' user name and password.') % name
-
-            # Require password
+             # Require password
             else:
                 password = form.get('password',[None])[0]
                 if not password:
                     error = _("Missing password. Please enter user name and"
                              " password.")
                 else:
+                    u = user.User(request, name=name, password=password,
+                        auth_method='login_userpassword')
+                    u.remember_me = 0  # is not need because of the kind of selection
+                    u.save()
+                    lifetime = int(request.cfg.cookie_lifetime * 3600) 
+                    now = time.time()
+                    expires = now + lifetime
+    
+                    cookie = auth.makeCookie(request, u.id, lifetime, expires)
+                    # Set cookie
+                    request.setHttpHeader(cookie)
+                    # IMPORTANT: Prevent caching of current page and cookie
+                    request.disableHttpCaching()
+             
                     if not request.user.valid:
                         error = _("Sorry, wrong password.")
-
+            
             return self.page.send_page(request, msg=error)
         
         else: # show login form
