def __call__(self, request): response = self.get_response(request) if not is_cookie_consent_enabled(request): return response cookie_dic = get_cookie_dict_from_request(request) for cookie_group in all_cookie_groups().values(): if not cookie_group.is_deletable: continue group_version = cookie_dic.get(cookie_group.varname, None) for cookie in cookie_group.cookie_set.all(): if cookie.name not in request.COOKIES: continue if not group_version: if not settings.COOKIE_CONSENT_OPT_OUT: response.delete_cookie(smart_str(cookie.name), cookie.path, cookie.domain) continue if group_version == settings.COOKIE_CONSENT_DECLINE: response.delete_cookie(smart_str(cookie.name), cookie.path, cookie.domain) if group_version < cookie.get_version( ) and not settings.COOKIE_CONSENT_OPT_OUT: response.delete_cookie(smart_str(cookie.name), cookie.path, cookie.domain) return response
def get_accept_cookie_groups_cookie_string(request, cookie_groups): """ Tag returns accept cookie string suitable to use in javascript. """ cookie_dic = get_cookie_dict_from_request(request) for cookie_group in cookie_groups: cookie_dic[cookie_group.varname] = cookie_group.get_version() return get_cookie_string(cookie_dic)
def get_decline_cookie_groups_cookie_string(request, cookie_groups): """ Tag returns decline cookie string suitable to use in javascript. """ cookie_dic = get_cookie_dict_from_request(request) for cookie_group in cookie_groups: cookie_dic[cookie_group.varname] = settings.COOKIE_CONSENT_DECLINE return get_cookie_string(cookie_dic)
def process_response(self, request, response): if not is_cookie_consent_enabled(request): return response cookie_dic = get_cookie_dict_from_request(request) for cookie_group in all_cookie_groups().values(): if not cookie_group.is_deletable: continue group_version = cookie_dic.get(cookie_group.varname, None) for cookie in cookie_group.cookie_set.all(): if cookie.name not in request.COOKIES: continue if group_version == settings.COOKIE_CONSENT_DECLINE: response.delete_cookie(smart_str(cookie.name), cookie.path, cookie.domain) if group_version < cookie.get_version(): if not settings.COOKIE_CONSENT_OPT_OUT: response.delete_cookie(smart_str(cookie.name), cookie.path, cookie.domain) return response