As a business requirement we have to show login form in an ajax
response for some login_required actions. I want to change the
login_required decorator to behaive differently in case the request is
an ajax request and not a normal GET / POST request.

What do you think is the best way to override the login_required
decorator without changing django code ?

For now just changed the django/contrib/auth/decorators.py to add at
the bottom this code:

    def __call__(self, request, *args, **kwargs):
        if self.test_func(request.user):
            return self.view_func(request, *args, **kwargs)
        path = urlquote(request.get_full_path())
        if request.is_ajax():
            return HttpResponse(render_to_string(
                                settings.LOGIN_TEMPLATE_AJAX,
                                {self.redirect_field_name: path,},
                                ),mimetype='text/plain')
        tup = self.login_url, self.redirect_field_name, path
        return HttpResponseRedirect('%s?%s=%s' % tup)


Any suggestion will be welcomed !

thanks in advance, robert
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to