From: Loic Baron Date: Tue, 19 Aug 2014 09:55:48 +0000 (+0200) Subject: Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab X-Git-Tag: myslice-1.0~1 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d45b63ca0026f8feb70e6ef64dee9773b467b479;hp=99ca4251c52634bd616c339b0695f66e3d9ea182;p=myslice.git Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab --- 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