diff --git a/marietje/marietje/context_processors.py b/marietje/marietje/context_processors.py index 170dd78..5747c16 100644 --- a/marietje/marietje/context_processors.py +++ b/marietje/marietje/context_processors.py @@ -1,6 +1,37 @@ +import ipaddress + from django.conf import settings +def _client_internal(request): + """ + If the client is internal, we will allow to show more info + + A client is considered internal if: + - Logged in + - Accesses from a trusted IP range + """ + if request.user.is_authenticated: + return True + + remote_ip = ipaddress.ip_address(request.META['REMOTE_ADDR']) + + + for ip_range in getattr(settings, 'TRUSTED_IP_RANGES', []): + net = ipaddress.ip_network(ip_range) + if remote_ip in net: + return True + + return False + def global_settings(request): - return {'issues_url': settings.ISSUES_URL, 'contact_email': settings.CONTACT_EMAIL, - 'merge_requests_url': settings.MERGE_REQUESTS_URL} + internal = _client_internal(request) + contact_email = settings.CONTACT_EMAIL + if not internal: + contact_email = contact_email.replace('@', ' [at] ') + return { + 'client_internal': internal, + 'issues_url': settings.ISSUES_URL, + 'contact_email': contact_email, + 'merge_requests_url': settings.MERGE_REQUESTS_URL + } diff --git a/marietje/marietje/settings.py b/marietje/marietje/settings.py index 255071a..1d8e88f 100644 --- a/marietje/marietje/settings.py +++ b/marietje/marietje/settings.py @@ -138,3 +138,7 @@ STATS_REQUEST_IGNORE_USER_IDS = [] ISSUES_URL = 'https://gitlab.science.ru.nl/Marietje/MarietjeDjango/issues' MERGE_REQUESTS_URL = 'https://gitlab.science.ru.nl/Marietje/MarietjeDjango/merge_requests' +TRUSTED_IP_RANGES = [ + '131.174.0.0/16' # RU wired + '145.116.136.0/22' # eduroam +] diff --git a/marietje/marietje/templates/base.html b/marietje/marietje/templates/base.html index 05536f2..788569a 100644 --- a/marietje/marietje/templates/base.html +++ b/marietje/marietje/templates/base.html @@ -69,10 +69,12 @@ {% endif %} {% block content %}{% endblock content %} + {% if client_internal %} + {% endif %} diff --git a/marietje/marietje/templates/registration/login.html b/marietje/marietje/templates/registration/login.html index 4165e73..fe94995 100644 --- a/marietje/marietje/templates/registration/login.html +++ b/marietje/marietje/templates/registration/login.html @@ -27,7 +27,7 @@
- Don't have an account? Send an email to {{ contact_email }}
+ Don't have an account? Send an email to <{{ contact_email }}>
Forgot your password? Reset password