7

Ensure that mixed static and dynamic segments are not populated at runtime

This commit is contained in:
Todd Dembrey
2017-10-20 09:53:18 +01:00
parent aa2a239aec
commit f339879907
2 changed files with 39 additions and 5 deletions

View File

@ -169,6 +169,10 @@ class Segment(ClusterableModel):
if self.is_static:
request = RequestFactory().get('/')
rules = self.get_rules()
all_static = all(rule.static for rule in rules)
for session in Session.objects.filter(
expire_date__gt=timezone.now(),
).iterator():
@ -176,7 +180,8 @@ class Segment(ClusterableModel):
user = user_from_data(session_data.get('_auth_id'))
request.user = user
request.session = SessionStore(session_key=session.session_key)
if all(rule.test_user(request) for rule in self.get_rules() if rule.static):
all_pass = all(rule.test_user(request) for rule in rules if rule.static)
if rules and all_static and all_pass:
self.sessions.add(session)