X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fregistrationview.py;h=47fcd053cc60fa1a99305b41b3d0241411f0dc18;hb=672ff9c87dad8d21d46c65e289cd0da34effb997;hp=8749f537bc621fa63ce4e24be9ba3c362c31f120;hpb=f8bf9fe459d94a73dff2c1f4fdcda88ac5031a95;p=unfold.git diff --git a/portal/registrationview.py b/portal/registrationview.py index 8749f537..47fcd053 100644 --- a/portal/registrationview.py +++ b/portal/registrationview.py @@ -1,4 +1,5 @@ -import os.path, re +import os.path +import re import json from random import randint from hashlib import md5 @@ -8,7 +9,6 @@ from django.template.loader import render_to_string from django.shortcuts import render from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site from unfold.page import Page from unfold.loginrequired import FreeAccessView @@ -21,6 +21,7 @@ from portal.models import PendingUser from portal.actions import create_pending_user from myslice.theme import ThemeView +from myslice.settings import logger import activity.user @@ -45,9 +46,12 @@ class RegistrationView (FreeAccessView, ThemeView): authorities_query = Query.get('authority').select('name', 'authority_hrn') authorities = execute_admin_query(wsgi_request, authorities_query) if authorities is not None: - authorities = sorted(authorities, key=lambda k: k['name']) + # Remove the root authority from the list + matching = [s for s in authorities if "." in s['authority_hrn']] + authorities = sorted(matching, key=lambda k: k['authority_hrn']) + authorities = sorted(matching, key=lambda k: k['name']) - print "############ BREAKPOINT 1 #################" + logger.debug("############ BREAKPOINT 1 #################") # Page rendering page = Page(wsgi_request) @@ -57,16 +61,18 @@ class RegistrationView (FreeAccessView, ThemeView): page.add_css_files ( [ "css/onelab.css", "css/registration.css", "css/jquery.qtip.min.css", "css/jquery.ui.combobox.css" ] ) page.expose_js_metadata() - print "############ BREAKPOINT 2 #################" + logger.debug("############ BREAKPOINT 2 #################") if method == 'POST': reg_form = {} # The form has been submitted - # get the domain url - current_site = Site.objects.get_current() - current_site = current_site.domain - - print "############ BREAKPOINT 3 #################" + if wsgi_request.is_secure(): + current_site = 'https://' + else: + current_site = 'http://' + current_site += wsgi_request.META['HTTP_HOST'] + + logger.debug("############ BREAKPOINT 3 #################") post_email = wsgi_request.POST.get('email','').lower() salt = randint(1,100000) email_hash = md5(str(salt)+post_email).hexdigest() @@ -80,16 +86,16 @@ class RegistrationView (FreeAccessView, ThemeView): 'current_site' : current_site, 'email_hash' : email_hash, 'pi' : '', - 'validation_link': 'https://' + current_site + '/portal/email_activation/'+ email_hash + 'validation_link': current_site + '/portal/email_activation/'+ email_hash } - print "############ BREAKPOINT 4 #################" + logger.debug("############ BREAKPOINT 4 #################") auth = wsgi_request.POST.get('org_name', None) - if auth is None: + if auth is None or auth == "": errors.append('Organization required: please select one or request its addition') else: - print "############ BREAKPOINT 5 #################" + logger.debug("############ BREAKPOINT 5 #################") # Construct user_hrn from email (XXX Should use common code) split_email = user_request['email'].split("@")[0] @@ -138,7 +144,7 @@ class RegistrationView (FreeAccessView, ThemeView): # sqlite3 /var/unfold/unfold.sqlite3 # select email from auth_user; if UserModel._default_manager.filter(email__iexact = user_request['email']): - errors.append('Contact OneLab support or try with another email.') + errors.append('Contact support or try with another email.') # XXX TODO: Factorize with portal/accountview.py # XXX TODO: Factorize with portal/registrationview.py @@ -179,7 +185,7 @@ class RegistrationView (FreeAccessView, ThemeView): return render(wsgi_request, self.template, {'theme': self.theme}) else: - print "############ BREAKPOINT A #################" + logger.debug("############ BREAKPOINT A #################") user_request = {} ## this is coming from onelab website onelab.eu reg_form = { @@ -189,7 +195,7 @@ class RegistrationView (FreeAccessView, ThemeView): } # log user activity activity.user.signup(self.request) - print "############ BREAKPOINT B #################" + logger.debug("############ BREAKPOINT B #################") template_env = { #'topmenu_items': topmenu_items_live('Register', page), @@ -200,5 +206,5 @@ class RegistrationView (FreeAccessView, ThemeView): template_env.update(user_request) template_env.update(reg_form) template_env.update(page.prelude_env ()) - print "############ BREAKPOINT C #################" + logger.debug("############ BREAKPOINT C #################") return render(wsgi_request, self.template,template_env)