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>
