diff --git a/config.py b/config.py
index 948b1b1..0b57119 100644
--- a/config.py
+++ b/config.py
@@ -52,7 +52,7 @@ OPENID_CREATE_USERS = True
OPENID_UPDATE_DETAILS_FROM_SREG = True
SITE_NAME = os.environ.get('SITE_NAME', 'libravatar')
-IVATAR_VERSION = '1.3'
+IVATAR_VERSION = '1.4'
SECURE_BASE_URL = os.environ.get('SECURE_BASE_URL', 'https://avatars.linux-kernel.at/avatar/')
BASE_URL = os.environ.get('BASE_URL', 'http://avatars.linux-kernel.at/avatar/')
diff --git a/ivatar/ivataraccount/templates/preferences.html b/ivatar/ivataraccount/templates/preferences.html
index 76612a4..ea563ac 100644
--- a/ivatar/ivataraccount/templates/preferences.html
+++ b/ivatar/ivataraccount/templates/preferences.html
@@ -7,36 +7,56 @@
{% block content %}
{% trans 'Account settings' %}
-
-
-
-
+
+
+
-
+
-{% trans 'Permanently delete your account' %}
+
+{% trans 'Permanently delete your account' %}
{% endblock content %}
diff --git a/ivatar/ivataraccount/views.py b/ivatar/ivataraccount/views.py
index db18795..bcdc7b4 100644
--- a/ivatar/ivataraccount/views.py
+++ b/ivatar/ivataraccount/views.py
@@ -731,6 +731,9 @@ class UserPreferenceView(FormView, UpdateView):
success_url = reverse_lazy('user_preference')
def post(self, request, *args, **kwargs): # pylint: disable=unused-argument
+ '''
+ Process POST-ed data from this form
+ '''
userpref = None
try:
userpref = self.request.user.userpreference
@@ -738,6 +741,30 @@ class UserPreferenceView(FormView, UpdateView):
userpref = UserPreference(user=self.request.user)
userpref.theme = request.POST['theme']
userpref.save()
+ try:
+ if request.POST['email'] != self.request.user.email:
+ addresses = list(self.request.user.confirmedemail_set.all().values_list('email', flat=True))
+ if request.POST['email'] not in addresses:
+ messages.error(self.request, _('Mail address not allowed: %s' % request.POST['email']))
+ else:
+ self.request.user.email = request.POST['email']
+ self.request.user.save()
+ messages.info(self.request, _('Mail address changed.'))
+ except Exception as e: # pylint: disable=broad-except
+ messages.error(self.request, _('Error setting new mail address: %s' % e))
+
+ try:
+ if request.POST['first_name'] or request.POST['last_name']:
+ if request.POST['first_name'] != self.request.user.first_name:
+ self.request.user.first_name = request.POST['first_name']
+ messages.info(self.request, _('First name changed.'))
+ if request.POST['last_name'] != self.request.user.last_name:
+ self.request.user.last_name = request.POST['last_name']
+ messages.info(self.request, _('Last name changed.'))
+ self.request.user.save()
+ except Exception as e: # pylint: disable=broad-except
+ messages.error(self.request, _('Error setting names: %s' % e))
+
return HttpResponseRedirect(reverse_lazy('user_preference'))