summaryrefslogtreecommitdiff
path: root/openstack_auth/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstack_auth/utils.py')
-rw-r--r--openstack_auth/utils.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/openstack_auth/utils.py b/openstack_auth/utils.py
index 32a39c5..c050726 100644
--- a/openstack_auth/utils.py
+++ b/openstack_auth/utils.py
@@ -476,3 +476,25 @@ def get_admin_permissions():
}
"""
return {get_role_permission(role) for role in get_admin_roles()}
+
+
+def get_client_ip(request):
+ """Return client ip address using SECURE_PROXY_ADDR_HEADER variable.
+
+ If not present or not defined on settings then REMOTE_ADDR is used.
+
+ :param request: Django http request object.
+ :type request: django.http.HttpRequest
+
+ :returns: Possible client ip address
+ :rtype: string
+ """
+ _SECURE_PROXY_ADDR_HEADER = getattr(
+ settings, 'SECURE_PROXY_ADDR_HEADER', False
+ )
+ if _SECURE_PROXY_ADDR_HEADER:
+ return request.META.get(
+ _SECURE_PROXY_ADDR_HEADER,
+ request.META.get('REMOTE_ADDR')
+ )
+ return request.META.get('REMOTE_ADDR')