lib/evaluator: add support for IP Address comparison

This commit is contained in:
Jens Langhammer
2020-07-12 16:36:49 +02:00
parent 0ff4545bab
commit 06f73512df
6 changed files with 21 additions and 4 deletions

View File

@ -1,4 +1,5 @@
"""passbook expression policy evaluator"""
from ipaddress import ip_address
from typing import List
from django.http import HttpRequest
@ -41,7 +42,9 @@ class PolicyEvaluator(BaseEvaluator):
"""Update context based on http request"""
# update passbook/policies/expression/templates/policy/expression/form.html
# update docs/policies/expression/index.md
self._context["pb_client_ip"] = get_client_ip(request) or "255.255.255.255"
self._context["pb_client_ip"] = ip_address(
get_client_ip(request) or "255.255.255.255"
)
self._context["request"] = request
if SESSION_KEY_PLAN in request.session:
self._context["pb_flow_plan"] = request.session[SESSION_KEY_PLAN]