1
1
from django import http , template
2
2
from django .conf import settings
3
- from django .contrib .auth .models import User , SESSION_KEY
3
+ from django .contrib .auth .models import User
4
+ from django .contrib .auth import authenticate , login
4
5
from django .shortcuts import render_to_response
5
6
from django .utils .translation import gettext_lazy
6
7
import base64 , datetime , md5
@@ -69,10 +70,10 @@ def _checklogin(request, *args, **kwargs):
69
70
return _display_login_form (request , message )
70
71
71
72
# Check the password.
72
- username = request .POST .get ('username' , '' )
73
- try :
74
- user = User . objects . get (username = username , is_staff = True )
75
- except User . DoesNotExist :
73
+ username = request .POST .get ('username' , None )
74
+ password = request . POST . get ( 'password' , None )
75
+ user = authenticate (username = username , password = password )
76
+ if user is None :
76
77
message = ERROR_MESSAGE
77
78
if '@' in username :
78
79
# Mistakenly entered e-mail address instead of username? Look it up.
@@ -86,8 +87,9 @@ def _checklogin(request, *args, **kwargs):
86
87
87
88
# The user data is correct; log in the user in and continue.
88
89
else :
89
- if user .check_password (request .POST .get ('password' , '' )):
90
- request .session [SESSION_KEY ] = user .id
90
+ if user .is_staff :
91
+ login (request , user )
92
+ # TODO: set last_login with an event.
91
93
user .last_login = datetime .datetime .now ()
92
94
user .save ()
93
95
if request .POST .has_key ('post_data' ):
0 commit comments