1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from datetime import datetime, timedelta
- from django.conf import settings
- class CookieJar(object):
- def __init__(self):
- self._set_cookies = []
- self._delete_cookies = []
- def set(self, cookie, value, permanent=False):
- if permanent:
- # 360 days
- max_age = 31104000
- else:
- # 48 hours
- max_age = 172800
- self._set_cookies.append({
- 'name': cookie,
- 'value': value,
- 'max_age': max_age,
- })
- def delete(self, cookie):
- self._delete_cookies.append(cookie)
- def flush(self, response):
- for cookie in self._set_cookies:
- response.set_cookie(
- settings.COOKIES_PREFIX + cookie['name'],
- cookie['value'],
- max_age=cookie['max_age'],
- path=settings.COOKIES_PATH,
- domain=settings.COOKIES_DOMAIN,
- secure=settings.COOKIES_SECURE
- )
- for cookie in self._delete_cookies:
- response.delete_cookie(
- settings.COOKIES_PREFIX + cookie,
- path=settings.COOKIES_PATH,
- domain=settings.COOKIES_DOMAIN,
- )
|