diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 6b8710a7..00000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 50b81cbb..00000000 --- a/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM python:3.10.0-alpine3.15 - -WORKDIR /usr/src/app - -RUN apk add --update --no-cache \ - git \ - build-base \ - openldap-dev \ - python3-dev \ - libpq-dev \ - && rm -rf /var/cache/apk/* - -# FIX https://github.com/python-ldap/python-ldap/issues/432 -RUN echo 'INPUT ( libldap.so )' > /usr/lib/libldap_r.so - -COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt -COPY ./ . diff --git a/Makefile b/Makefile index 68ff014e..67c0c15b 100644 --- a/Makefile +++ b/Makefile @@ -14,12 +14,6 @@ help: @echo ' make rsync_upload ' @echo ' make install_debian_packages ' -buildimage: - docker build -t dynamicweb:$$(git describe) . - -releaseimage: buildimage - ./release.sh - collectstatic: $(PY?) $(BASEDIR)/manage.py collectstatic diff --git a/datacenterlight/cms_plugins.py b/datacenterlight/cms_plugins.py index 52b4f19f..ffecbf0b 100644 --- a/datacenterlight/cms_plugins.py +++ b/datacenterlight/cms_plugins.py @@ -1,6 +1,7 @@ from cms.plugin_base import CMSPluginBase from cms.plugin_pool import plugin_pool from django.conf import settings +from django.utils.translation import ugettext_lazy as _ from .cms_models import ( DCLBannerItemPluginModel, DCLBannerListPluginModel, DCLContactPluginModel, @@ -10,7 +11,9 @@ from .cms_models import ( DCLSectionPromoPluginModel, DCLCalculatorPluginModel ) from .models import VMTemplate -from datacenterlight.utils import clear_all_session_vars +from datacenterlight.utils import clear_all_session_vars, get_ip_address + +import ipaddress @plugin_pool.register_plugin @@ -170,6 +173,25 @@ class DCLContactPlugin(CMSPluginBase): render_template = "datacenterlight/cms/contact.html" cache = False + def render(self, context, instance, placeholder): + context = super(DCLContactPlugin, self).render( + context, instance, placeholder + ) + request_ip_address = get_ip_address(context['request']) + request_v4v6 = '' + if (type(ipaddress.ip_address(request_ip_address)) == + ipaddress.IPv4Address): + request_v4v6 = 'IPv4' + elif (type(ipaddress.ip_address(request_ip_address)) == + ipaddress.IPv6Address): + request_v4v6 = 'IPv6' + context['ip_address_label_title'] = _( + "You are requesting this website from " + "{ip_address}.".format(ip_address=request_ip_address)) + context['ip_address_label'] = _( + "Enter '{v4v6}':".format(v4v6=request_v4v6)) + return context + @plugin_pool.register_plugin class DCLFooterPlugin(CMSPluginBase): diff --git a/datacenterlight/forms.py b/datacenterlight/forms.py index b697f694..d5b6f814 100644 --- a/datacenterlight/forms.py +++ b/datacenterlight/forms.py @@ -1,9 +1,42 @@ from django import forms +from django.utils.translation import ugettext_lazy as _ +from datacenterlight.utils import get_ip_address + +import logging from .models import ContactUs +import ipaddress +logger = logging.getLogger(__name__) + class ContactForm(forms.ModelForm): class Meta: - fields = ['name', 'email', 'message'] + fields = ['name', 'email', 'message', 'ip_address'] model = ContactUs + labels = { + "ip_address": _("You are requesting this website from " + "{{ip_address}}. Enter 'IPv{{v4v6}}':".format( + ip_address='test', v4v6='4' + )) + } + + def __init__(self, *args, **kwargs): + self.request = kwargs.pop('request', None) + super(ContactForm, self).__init__(*args, **kwargs) + self.fields['ip_address'] = forms.CharField(required=True) + + def clean_ip_address(self): + input_ip_address_text = self.cleaned_data.get('ip_address') + request_ip_address = get_ip_address(self.request) + ip_address_type_text = 'ipv4' + if (type(ipaddress.ip_address(request_ip_address)) + == ipaddress.IPv4Address): + ip_address_type_text = 'ipv4' + elif (type(ipaddress.ip_address(request_ip_address)) + == ipaddress.IPv6Address): + ip_address_type_text = 'ipv6' + if input_ip_address_text.strip().lower() == ip_address_type_text: + return request_ip_address + else: + raise forms.ValidationError(_("Input correct IP address type")) diff --git a/datacenterlight/migrations/0032_contactus_ip_address.py b/datacenterlight/migrations/0032_contactus_ip_address.py new file mode 100644 index 00000000..836fcc10 --- /dev/null +++ b/datacenterlight/migrations/0032_contactus_ip_address.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2021-02-11 10:12 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('datacenterlight', '0031_vmpricing_stripe_coupon_id'), + ] + + operations = [ + migrations.AddField( + model_name='contactus', + name='ip_address', + field=models.TextField(default='', null=True), + ), + ] diff --git a/datacenterlight/models.py b/datacenterlight/models.py index 64d785a2..a075fd66 100644 --- a/datacenterlight/models.py +++ b/datacenterlight/models.py @@ -118,6 +118,7 @@ class ContactUs(models.Model): name = models.CharField(max_length=250) email = models.CharField(max_length=250) message = models.TextField() + ip_address = models.TextField(default='', null=True) field = models.DateTimeField(auto_now_add=True) def __str__(self): diff --git a/datacenterlight/tasks.py b/datacenterlight/tasks.py index 899b506f..9c98b729 100644 --- a/datacenterlight/tasks.py +++ b/datacenterlight/tasks.py @@ -195,7 +195,7 @@ def handle_metadata_and_emails(order_id, vm_id, manager, user, specs, email_data = { 'subject': settings.DCL_TEXT + " Order from %s" % context['email'], 'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, - 'to': ['dcl-orders@ungleich.ch'], + 'to': ['info@ungleich.ch'], 'body': "\n".join( ["%s=%s" % (k, v) for (k, v) in context.items()]), 'reply_to': [context['email']], @@ -233,4 +233,4 @@ def handle_metadata_and_emails(order_id, vm_id, manager, user, specs, logger.debug("New VM ID is {vm_id}".format(vm_id=vm_id)) if vm_id > 0: - get_or_create_vm_detail(custom_user, manager, vm_id) + get_or_create_vm_detail(custom_user, manager, vm_id) \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/contact_form.html b/datacenterlight/templates/datacenterlight/contact_form.html index 87848ff2..afaf7144 100644 --- a/datacenterlight/templates/datacenterlight/contact_form.html +++ b/datacenterlight/templates/datacenterlight/contact_form.html @@ -26,7 +26,7 @@