ENT-2651 Recovery email Field UX logic on Account Settings page was not same to dashboard (#23565)

This commit is contained in:
Zaman Afzal
2020-04-08 16:21:37 +05:00
committed by GitHub
parent 90885e4193
commit c7e2f8d49a
4 changed files with 17 additions and 14 deletions

View File

@@ -3288,6 +3288,7 @@ ACCOUNT_VISIBILITY_CONFIGURATION["admin_fields"] = (
"mailing_address",
"requires_parental_consent",
"secondary_email",
"secondary_email_enabled",
"year_of_birth",
"phone_number",
]

View File

@@ -172,13 +172,13 @@ class UserReadOnlySerializer(serializers.Serializer):
}
)
if account_recovery:
if is_secondary_email_feature_enabled_for_user(user):
data.update(
{
"secondary_email": account_recovery.secondary_email,
}
)
if is_secondary_email_feature_enabled_for_user(user):
data.update(
{
"secondary_email": account_recovery.secondary_email if account_recovery else None,
"secondary_email_enabled": True,
}
)
if self.custom_fields:
fields = self.custom_fields

View File

@@ -534,6 +534,7 @@ class AccountSettingsOnCreationTest(CreateAccountMixin, TestCase):
'accomplishments_shared': False,
'extended_profile': [],
'secondary_email': None,
'secondary_email_enabled': None,
'time_zone': None,
'course_certificates': None,
'phone_number': None,

View File

@@ -266,7 +266,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
Verify that all account fields are returned (even those that are not shareable).
"""
data = response.data
self.assertEqual(23, len(data))
self.assertEqual(24, len(data))
# public fields (3)
expected_account_privacy = (
@@ -297,6 +297,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
self.assertEqual("Park Ave", data['mailing_address'])
self.assertEqual(requires_parental_consent, data["requires_parental_consent"])
self.assertIsNone(data["secondary_email"])
self.assertIsNone(data["secondary_email_enabled"])
self.assertEqual(year_of_birth, data["year_of_birth"])
def test_anonymous_access(self):
@@ -355,7 +356,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
"""
self.different_client.login(username=self.different_user.username, password=TEST_PASSWORD)
self.create_mock_profile(self.user)
with self.assertNumQueries(22):
with self.assertNumQueries(23):
response = self.send_get(self.different_client)
self._verify_full_shareable_account_response(response, account_privacy=ALL_USERS_VISIBILITY)
@@ -370,7 +371,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
"""
self.different_client.login(username=self.different_user.username, password=TEST_PASSWORD)
self.create_mock_profile(self.user)
with self.assertNumQueries(22):
with self.assertNumQueries(23):
response = self.send_get(self.different_client)
self._verify_private_account_response(response)
@@ -494,7 +495,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
with self.assertNumQueries(queries):
response = self.send_get(self.client)
data = response.data
self.assertEqual(23, len(data))
self.assertEqual(24, len(data))
self.assertEqual(self.user.username, data["username"])
self.assertEqual(self.user.first_name + " " + self.user.last_name, data["name"])
for empty_field in ("year_of_birth", "level_of_education", "mailing_address", "bio"):
@@ -514,7 +515,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
self.assertEqual(False, data["accomplishments_shared"])
self.client.login(username=self.user.username, password=TEST_PASSWORD)
verify_get_own_information(20)
verify_get_own_information(21)
# Now make sure that the user can get the same information, even if not active
self.user.is_active = False
@@ -533,7 +534,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
legacy_profile.save()
self.client.login(username=self.user.username, password=TEST_PASSWORD)
with self.assertNumQueries(20):
with self.assertNumQueries(21):
response = self.send_get(self.client)
for empty_field in ("level_of_education", "gender", "country", "bio"):
self.assertIsNone(response.data[empty_field])
@@ -905,7 +906,7 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
response = self.send_get(client)
if has_full_access:
data = response.data
self.assertEqual(23, len(data))
self.assertEqual(24, len(data))
self.assertEqual(self.user.username, data["username"])
self.assertEqual(self.user.first_name + " " + self.user.last_name, data["name"])
self.assertEqual(self.user.email, data["email"])