Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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('')
Exemplo n.º 3
0
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 ''
Exemplo n.º 4
0
def csrf(context):
    """Equivalent of Django's ``{% crsf_token %}``."""
    return jinja2.Markup(CsrfTokenNode().render(context))
Exemplo n.º 5
0
 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''
Exemplo n.º 7
0
 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})
Exemplo n.º 8
0
def csrf(context):
    return jinja2.Markup(CsrfTokenNode().render(context))