Skip to content

Instantly share code, notes, and snippets.

@justinzane
Created August 3, 2012 04:18
Show Gist options
  • Save justinzane/3244305 to your computer and use it in GitHub Desktop.
Save justinzane/3244305 to your computer and use it in GitHub Desktop.
from api.py
##### api.py
class UserResource(ModelResource):
def obj_create(self, bundle, request=None, **kwargs):
return super(UserResource, self).obj_create(bundle,
request,
user=request.user)
def apply_authorization_limits(self, request, object_list):
return object_list.filter(pk=request.user.pk)
class Meta:
authentication = BasicAuthentication()
authorization = DjangoAuthorization()
allowed_methods = ['get']
queryset = User.objects.all()
resource_name = 'user'
##### views.py
def login(request):
''' This login method is tailored to produce json responses based on the
needs of ExtJS 4.1/ '''
result = {}
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None:
if user.is_active:
auth.login(request, user)
result['success'] = True
return HttpResponse(json.dumps(result), mimetype='application/json')
else:
result['success'] = False
result['errors'] = {'message': 'Invalid username.'}
return HttpResponse(json.dumps(result), mimetype='application/json')
else:
result['success'] = False
result['errors'] = {'message': 'Invalid password.'}
return HttpResponse(json.dumps(result), mimetype='application/json')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment