Adding Login and Logout simple views to the api
parent
bbd6f33d8b
commit
c089db68e4
|
@ -0,0 +1,40 @@
|
||||||
|
from django.views.generic.base import View
|
||||||
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
from django.utils.decorators import method_decorator
|
||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
from django.contrib.auth import logout, login, authenticate
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
class Login(View):
|
||||||
|
def post(self, request):
|
||||||
|
username = request.POST.get('username', None)
|
||||||
|
password = request.POST.get('password', None)
|
||||||
|
print username
|
||||||
|
print password
|
||||||
|
|
||||||
|
try:
|
||||||
|
user = User.objects.get(username=username)
|
||||||
|
if user.check_password(password):
|
||||||
|
user = authenticate(username=username, password=password)
|
||||||
|
login(request, user)
|
||||||
|
return HttpResponse(json.dumps({'token': request.session.session_key, 'error': False}))
|
||||||
|
except User.DoesNotExist:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return HttpResponse(json.dumps({'error': True}))
|
||||||
|
|
||||||
|
@method_decorator(csrf_exempt)
|
||||||
|
def dispatch(self, *args, **kwargs):
|
||||||
|
return super(Login, self).dispatch(*args, **kwargs)
|
||||||
|
|
||||||
|
class Logout(View):
|
||||||
|
def post(self, request):
|
||||||
|
logout(request)
|
||||||
|
return HttpResponse()
|
||||||
|
|
||||||
|
@method_decorator(csrf_exempt)
|
||||||
|
def dispatch(self, *args, **kwargs):
|
||||||
|
return super(Login, self).dispatch(*args, **kwargs)
|
|
@ -3,6 +3,8 @@ from django.conf.urls import patterns, include, url
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
admin.autodiscover()
|
admin.autodiscover()
|
||||||
|
|
||||||
|
from base.api_actions import Login, Logout
|
||||||
|
|
||||||
from tastypie.api import Api
|
from tastypie.api import Api
|
||||||
|
|
||||||
from scrum.api import *
|
from scrum.api import *
|
||||||
|
@ -12,7 +14,7 @@ from profile.api import *
|
||||||
from taggit.api import *
|
from taggit.api import *
|
||||||
from wiki.api import *
|
from wiki.api import *
|
||||||
|
|
||||||
v1_api = Api(api_name='v1')
|
v1_api = Api(api_name='gm')
|
||||||
v1_api.register(ProjectResource())
|
v1_api.register(ProjectResource())
|
||||||
v1_api.register(ProjectUserRoleResource())
|
v1_api.register(ProjectUserRoleResource())
|
||||||
v1_api.register(MilestoneResource())
|
v1_api.register(MilestoneResource())
|
||||||
|
@ -31,6 +33,8 @@ v1_api.register(WikiPageHistoryResource())
|
||||||
v1_api.register(WikiPageAttachmentResource())
|
v1_api.register(WikiPageAttachmentResource())
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
|
url(r'^api/gm/actions/login/', Login.as_view(), name="login"),
|
||||||
|
url(r'^api/gm/actions/logout/', Logout.as_view(), name="logout"),
|
||||||
url(r'^api/', include(v1_api.urls)),
|
url(r'^api/', include(v1_api.urls)),
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
url(r'^admin/', include(admin.site.urls)),
|
||||||
url(r'^grappelli/', include('grappelli.urls')),
|
url(r'^grappelli/', include('grappelli.urls')),
|
||||||
|
|
Loading…
Reference in New Issue