diff options
Diffstat (limited to 'openstack_auth/utils.py')
-rw-r--r-- | openstack_auth/utils.py | 22 |
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') |