From 8494ffc93614cb9bd0532c059f08c0d5ddd46155 Mon Sep 17 00:00:00 2001 From: Loic Baron Date: Tue, 19 Aug 2014 11:53:12 +0200 Subject: [PATCH] RT 81 - If the user has registered a new authority, we don't validate automatically because the authority doesn't exist yet. This has to be a manual approval, for example checking in PLE website if the person is a PI from PLC --- portal/emailactivationview.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/portal/emailactivationview.py b/portal/emailactivationview.py index 4680256c..b7f9cd54 100644 --- a/portal/emailactivationview.py +++ b/portal/emailactivationview.py @@ -11,7 +11,7 @@ from django.http import HttpResponse, HttpResponseRedirec from django.contrib import messages from django.contrib.auth.decorators import login_required from myslice.theme import ThemeView -from portal.models import PendingUser +from portal.models import PendingUser, PendingAuthority from django.core.mail import EmailMultiAlternatives, send_mail from django.contrib.sites.models import Site @@ -21,10 +21,22 @@ import json, os, re, itertools def ValuesQuerySetToDict(vqs): return [item for item in vqs] - # requires login class ActivateEmailView(FreeAccessView, ThemeView): template_name = "email_activation.html" + def is_ple_enabled(self, pending_user): + pending_authorities = PendingAuthority.objects.filter(site_authority__iexact = pending_user.authority_hrn) + if pending_authorities: + return False + pending_user_email = pending_user.email + query = Query.get('myplcuser').filter_by('email', '==', pending_user_email).select('enabled') + results = execute_admin_query(self.request, query) + for result in results: + # User is enabled in PLE + if 'enabled' in result and result['enabled']==True: + return True + return False + def dispatch(self, *args, **kwargs): return super(ActivateEmailView, self).dispatch(*args, **kwargs) @@ -55,18 +67,10 @@ class ActivateEmailView(FreeAccessView, ThemeView): if pending_users: pending_user = pending_users[0] - pending_user_request = make_request_user(pending_user) - pending_user_email = pending_users[0].email - query = Query.get('myplcuser').filter_by('email', '==', pending_user_email).select('enabled') - results = execute_admin_query(self.request, query) - for result in results: - # User is enabled in PLE - if 'enabled' in result and result['enabled']==True: - ple_user_enabled = True - break - + # Auto Validation - if ple_user_enabled: + if self.is_ple_enabled(pending_user): + pending_user_request = make_request_user(pending_user) # Create user in SFA and Update in Manifold create_user(self.request, pending_user_request, namespace = 'myslice', as_admin = True) # Delete pending user -- 2.43.0