def per_view_csrf(context, view_name): """Register per view csrf token. Not pure!""" with save_token(context): token = get_token_for_request(context['request'], view_name) if token is not None: context['csrf_token'] = token.value return CsrfTokenNode().render(context)
def pybb_csrf(parser, token): """ This tag returns CsrfTokenNode if CsrfViewMiddleware is enabled, or empty string if not """ if 'django.middleware.csrf.CsrfViewMiddleware' in settings.MIDDLEWARE_CLASSES: from django.template.defaulttags import CsrfTokenNode return CsrfTokenNode() else: return TextNode('')
def user_guide(context, *args, **kwargs): """ Creates html items for all appropriate user guides. Kwargs: guide_name: A string name of a specific guide. guide_tags: An array of string guide tags. limit: An integer maxmimum number of guides to show at a single time. Returns: An html string containing the user guide scaffolding and any guide html. """ user = context['request'].user if 'request' in context and hasattr(context['request'], 'user') else None if user and user.is_authenticated(): # No one is logged in limit = kwargs.get('limit', USER_GUIDE_SHOW_MAX) filters = { 'user': user, 'is_finished': False } # Handle special filters if kwargs.get('guide_name'): filters['guide__guide_name'] = kwargs.get('guide_name') if kwargs.get('guide_tags'): filters['guide__guide_tag__in'] = kwargs.get('guide_tags') # Set the html html = ''.join(( '<div data-guide="{0}" class="django-user-guide-item">{1}</div>'.format( guide_info.id, guide_info.guide.html ) for guide_info in GuideInfo.objects.select_related('guide').filter(**filters).only('guide')[:limit] )) # Return the rendered template with the guide html return loader.render_to_string('user_guide/window.html', { 'html': re.sub(r'\{\s*static\s*\}', settings.STATIC_URL, html), 'css_href': '{0}user_guide/build/django-user-guide.css'.format(settings.STATIC_URL), 'js_src': '{0}user_guide/build/django-user-guide.js'.format(settings.STATIC_URL), 'custom_css_href': USER_GUIDE_CSS_URL, 'custom_js_src': USER_GUIDE_JS_URL, 'use_cookies': str(USER_GUIDE_USE_COOKIES).lower(), 'csrf_node': CsrfTokenNode().render(context) }) else: return ''
def csrf(context): """Equivalent of Django's ``{% crsf_token %}``.""" return jinja2.Markup(CsrfTokenNode().render(context))
def _render(self, csrf_token): from django.template.defaulttags import CsrfTokenNode return Markup(CsrfTokenNode().render({'csrf_token': csrf_token}))
def render(self, context): try: from django.template.defaulttags import CsrfTokenNode return CsrfTokenNode().render(context) except ImportError: return u''
def test_csrf_token(self, get_token): self.template = '{% csrf_token %}' get_token.return_value = csrf_token = 'CSRFTOKEN' self.assertRender( Markup(CsrfTokenNode().render({'csrf_token': csrf_token})), {'csrf_token': csrf_token})
def csrf(context): return jinja2.Markup(CsrfTokenNode().render(context))