From fd700ca6d9a099b3a9f65c394bc77f910a2ca55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Wed, 14 Jun 2017 16:26:29 +0200 Subject: [PATCH] Inject current_user_is_subscriber into Jinja context This variable is set to True iff the user has a subscriber/demo/admin role. It's an attempt to get some of the Cloud subscription specific stuff out of Pillar. --- cloud/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cloud/__init__.py b/cloud/__init__.py index b5cd63c..3fe2ff2 100644 --- a/cloud/__init__.py +++ b/cloud/__init__.py @@ -2,12 +2,17 @@ import logging import flask from werkzeug.local import LocalProxy + +from pillar.api.utils import authorization from pillar.extension import PillarExtension EXTENSION_NAME = 'cloud' +ROLES_TO_BE_SUBSCRIBER = {'demo', 'subscriber', 'admin'} class CloudExtension(PillarExtension): + has_context_processor = True + def __init__(self): self._log = logging.getLogger('%s.CloudExtension' % __name__) @@ -65,6 +70,11 @@ class CloudExtension(PillarExtension): import os.path return os.path.join(os.path.dirname(__file__), 'static') + def context_processor(self): + return { + 'current_user_is_subscriber': authorization.user_matches_roles(ROLES_TO_BE_SUBSCRIBER) + } + def _get_current_cloud(): """Returns the Cloud extension of the current application."""