policy(major): simplify PolicyEngine API, add flag to ignore cache for debug purposes

This commit is contained in:
Langhammer, Jens
2019-10-15 15:44:59 +02:00
parent 13f4ea0b8b
commit d4cb1a98c7
10 changed files with 23 additions and 31 deletions

View File

@ -31,6 +31,6 @@ class AccessMixin:
def user_has_access(self, application: Application, user: User) -> Tuple[bool, List[str]]:
"""Check if user has access to application."""
LOGGER.debug("Checking permissions", user=user, application=application)
policy_engine = PolicyEngine(application.policies.all())
policy_engine.for_user(user).with_request(self.request).build()
policy_engine = PolicyEngine(application.policies.all(), user, self.request)
policy_engine.build()
return policy_engine.result

View File

@ -16,8 +16,7 @@ class OverviewView(LoginRequiredMixin, TemplateView):
def get_context_data(self, **kwargs):
kwargs['applications'] = []
for application in Application.objects.all():
engine = PolicyEngine(application.policies.all())
engine.for_user(self.request.user).with_request(self.request)
engine = PolicyEngine(application.policies.all(), self.request.user, self.request)
engine.build()
if engine.passing:
kwargs['applications'].append(application)