mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-14 23:02:19 +00:00
Add validation to login, added logout method
This commit is contained in:
@@ -47,7 +47,7 @@ class LoginHandler(BaseHandler):
|
|||||||
allowed_methods = ('GET')
|
allowed_methods = ('GET')
|
||||||
|
|
||||||
def read(self, request):
|
def read(self, request):
|
||||||
if request.user:
|
if request.user and request.user.is_authenticated():
|
||||||
return {'auth': 'notrequired', 'cookie': request.session.session_key }
|
return {'auth': 'notrequired', 'cookie': request.session.session_key }
|
||||||
|
|
||||||
if not 'user' in request.GET or not 'pass' in request.GET:
|
if not 'user' in request.GET or not 'pass' in request.GET:
|
||||||
@@ -56,12 +56,23 @@ class LoginHandler(BaseHandler):
|
|||||||
if not user.is_active:
|
if not user.is_active:
|
||||||
return { 'auth': 'disabled' }
|
return { 'auth': 'disabled' }
|
||||||
|
|
||||||
if authenticate(user.name, password):
|
userobj = authenticate(user.name, password)
|
||||||
|
if userobj and user.is_active:
|
||||||
login(request, user)
|
login(request, user)
|
||||||
return { 'auth': 'ok', 'id': user.id, 'username': user.username, 'cookie': request.session.session_key }
|
return { 'auth': 'ok', 'id': user.id, 'username': user.username, 'cookie': request.session.session_key }
|
||||||
else:
|
else:
|
||||||
return { 'auth': 'fail' }
|
return { 'auth': 'fail' }
|
||||||
|
|
||||||
|
class LogoutHandler(BaseHandler):
|
||||||
|
allowed_methods = ('GET')
|
||||||
|
|
||||||
|
def read(self, request):
|
||||||
|
if request.user and not request.user.is_authenticated():
|
||||||
|
return {'auth': 'notrequired', }
|
||||||
|
|
||||||
|
logout(request)
|
||||||
|
return { 'auth': 'logout', }
|
||||||
|
|
||||||
class AccessHandler(BaseHandler):
|
class AccessHandler(BaseHandler):
|
||||||
allowed_methods = ('GET')
|
allowed_methods = ('GET')
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,12 @@ ad = { 'authentication': auth }
|
|||||||
|
|
||||||
user_resource = Resource(handler=UserHandler, **ad)
|
user_resource = Resource(handler=UserHandler, **ad)
|
||||||
login_resource = Resource(handler=LoginHandler, **ad)
|
login_resource = Resource(handler=LoginHandler, **ad)
|
||||||
|
logout_resource = Resource(handler=LogoutHandler, **ad)
|
||||||
access_resource = Resource(handler=AccessHandler, **ad)
|
access_resource = Resource(handler=AccessHandler, **ad)
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^login/$', login_resource),
|
url(r'^login/$', login_resource),
|
||||||
|
url(r'^logout/$', logout_resource),
|
||||||
url(r'^access/$', access_resource),
|
url(r'^access/$', access_resource),
|
||||||
url(r'^user/$', user_resource),
|
url(r'^user/$', user_resource),
|
||||||
# url(r'^user/(?P<id>\d+)/$', user_resource),
|
# url(r'^user/(?P<id>\d+)/$', user_resource),
|
||||||
|
|||||||
Reference in New Issue
Block a user