|
Revision 5870, 1.1 kB
(checked in by mtredinnick, 1 year ago)
|
Fixed #4933 -- Fixed a typo and reformatted a fairly long line in passing. Thanks, Ludvig Ericson.
|
- Property svn:eol-style set to
native
- Property svn:keywords set to
LastChangedRevision
|
| Line | |
|---|
| 1 |
""" |
|---|
| 2 |
Pages in Django can are served up with custom HTTP headers containing useful |
|---|
| 3 |
information about those pages -- namely, the content type and object ID. |
|---|
| 4 |
|
|---|
| 5 |
This module contains utility functions for retrieving and doing interesting |
|---|
| 6 |
things with these special "X-Headers" (so called because the HTTP spec demands |
|---|
| 7 |
that custom headers are prefixed with "X-"). |
|---|
| 8 |
|
|---|
| 9 |
Next time you're at slashdot.org, watch out for X-Fry and X-Bender. :) |
|---|
| 10 |
""" |
|---|
| 11 |
|
|---|
| 12 |
def populate_xheaders(request, response, model, object_id): |
|---|
| 13 |
""" |
|---|
| 14 |
Adds the "X-Object-Type" and "X-Object-Id" headers to the given |
|---|
| 15 |
HttpResponse according to the given model and object_id -- but only if the |
|---|
| 16 |
given HttpRequest object has an IP address within the INTERNAL_IPS setting |
|---|
| 17 |
or if the request is from a logged in staff member. |
|---|
| 18 |
""" |
|---|
| 19 |
from django.conf import settings |
|---|
| 20 |
if (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS |
|---|
| 21 |
or (hasattr(request, 'user') and request.user.is_authenticated() |
|---|
| 22 |
and request.user.is_staff)): |
|---|
| 23 |
response['X-Object-Type'] = "%s.%s" % (model._meta.app_label, model._meta.object_name.lower()) |
|---|
| 24 |
response['X-Object-Id'] = str(object_id) |
|---|