This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch 
AIRAVATA-3319-handle-missing-name-and-email-attributes-from-cilo
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 7af575a4de14439335e0c70e1c517a521c92155a
Author: Marcus Christie <[email protected]>
AuthorDate: Thu Apr 29 16:40:32 2021 -0400

    AIRAVATA-3455 Display if there is a pending email change
---
 django_airavata/apps/auth/serializers.py            | 21 +++++++++++++++++++--
 .../js/components/UserProfileEditor.vue             |  7 +++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/django_airavata/apps/auth/serializers.py 
b/django_airavata/apps/auth/serializers.py
index 310b4a0..5b4b929 100644
--- a/django_airavata/apps/auth/serializers.py
+++ b/django_airavata/apps/auth/serializers.py
@@ -12,12 +12,29 @@ from . import models, utils
 logger = logging.getLogger(__name__)
 
 
+class PendingEmailChangeSerializer(serializers.ModelSerializer):
+
+    class Meta:
+        model = models.PendingEmailChange
+        fields = ['email_address', 'created_date']
+
+
 class UserSerializer(serializers.ModelSerializer):
 
-    # TODO: add a lookup of most recent PendingEmailChange if any
+    pending_email_change = serializers.SerializerMethodField()
+
     class Meta:
         model = get_user_model()
-        fields = ['id', 'username', 'first_name', 'last_name', 'email']
+        fields = ['id', 'username', 'first_name', 'last_name', 'email', 
'pending_email_change']
+
+    def get_pending_email_change(self, instance):
+        request = self.context['request']
+        pending_email_change = 
models.PendingEmailChange.objects.filter(user=request.user, 
verified=False).first()
+        if pending_email_change is not None:
+            serializer = 
PendingEmailChangeSerializer(instance=pending_email_change, 
context=self.context)
+            return serializer.data
+        else:
+            return None
 
     @atomic
     def update(self, instance, validated_data):
diff --git 
a/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
 
b/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
index 844b3a0..ce84e61 100644
--- 
a/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
+++ 
b/django_airavata/apps/auth/static/django_airavata_auth/js/components/UserProfileEditor.vue
@@ -11,6 +11,13 @@
     </b-form-group>
     <b-form-group label="Email">
       <b-form-input v-model="user.email" />
+      <b-alert class="mt-1" show v-if="user.pending_email_change"
+        >Once you verify your email address at
+        <strong>{{ user.pending_email_change.email_address }}</strong
+        >, your email address will be updated. If you didn't receive the
+        verification email,
+        <b-link>click here to resend verification link.</b-link></b-alert
+      >
     </b-form-group>
     <b-button variant="primary" @click="$emit('save', user)">Save</b-button>
     <b-button>Cancel</b-button>

Reply via email to