diff --git a/opentech/apply/users/forms.py b/opentech/apply/users/forms.py index b27eab0b8f4091fe4368787ac298499078a473fd..8338010a6bce407dfa03be69e97d03b05f28972e 100644 --- a/opentech/apply/users/forms.py +++ b/opentech/apply/users/forms.py @@ -1,5 +1,6 @@ from django import forms from django.contrib.auth import get_user_model +from django.utils.translation import gettext_lazy as _ from wagtail.users.forms import UserEditForm, UserCreationForm @@ -36,7 +37,10 @@ class ProfileForm(forms.ModelForm): if not self.instance.has_usable_password(): # User is registered with oauth - no password change allowed - del self.fields['email'] + email_field = self.fields['email'] + email_field.disabled = True + email_field.required = False + email_field.help_text = _('You are registered using OAuth, please contact an admin if you need to change your email address.') def clean_slack(self): slack = self.cleaned_data['slack'] diff --git a/opentech/apply/users/tests/test_forms.py b/opentech/apply/users/tests/test_forms.py index 06e81fb933f048101100af1a60e7dff680c4f9e8..edb991775afdc6b395f9660b098181322fe9914e 100644 --- a/opentech/apply/users/tests/test_forms.py +++ b/opentech/apply/users/tests/test_forms.py @@ -48,10 +48,9 @@ class TestStaffProfileForm(BaseTestProfileForm): def setUp(self): self.staff = StaffFactory() - def test_cant_change_password(self): + def test_cant_change_email(self): new_email = 'me@this.com' - form = self.submit_form(self.staff, email=new_email) - self.assertFalse('email' in form.fields) + self.submit_form(self.staff, email=new_email) self.staff.refresh_from_db() self.assertNotEqual(new_email, self.staff.email) diff --git a/opentech/apply/users/tests/test_views.py b/opentech/apply/users/tests/test_views.py index 1943e508315cfd891b11d2095dd1b5e2639c4af0..935dcdc981e7301ad4f28cd84a204fb775c4ee3e 100644 --- a/opentech/apply/users/tests/test_views.py +++ b/opentech/apply/users/tests/test_views.py @@ -43,7 +43,3 @@ class TestStaffProfileView(BaseTestProfielView): def test_can_set_slack_name(self): response = self.client.get(self.url, follow=True) self.assertContains(response, 'Slack name') - - def test_can_not_set_email(self): - response = self.client.get(self.url, follow=True) - self.assertNotContains(response, 'Email')