From 34ececec5c03aa6ca7fe3b7e0b9c28fb7cf49d91 Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 15 Jul 2014 15:53:16 +0200 Subject: [PATCH] SliceRequest: Slicename should only be letter, number and underscore + bugfix --- portal/actions.py | 2 +- portal/registrationview.py | 4 ++-- portal/slicerequestview.py | 19 +++++++++++++++---- .../onelab/onelab_slicerequest_view.html | 6 +++--- portal/templates/slice_request_email.html | 10 +++++----- portal/templates/slice_request_email.txt | 10 +++++----- 6 files changed, 31 insertions(+), 20 deletions(-) diff --git a/portal/actions.py b/portal/actions.py index baf4ccab..e2181260 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -402,7 +402,7 @@ def create_pending_slice(wsgi_request, request, email): slice_name = request['slice_name'], user_hrn = request['user_hrn'], authority_hrn = request['authority_hrn'], - number_of_nodes = request['number_of_nodes'], + number_of_nodes = request['exp_url'], purpose = request['purpose'], ) s.save() diff --git a/portal/registrationview.py b/portal/registrationview.py index 6a8322d0..7967a916 100644 --- a/portal/registrationview.py +++ b/portal/registrationview.py @@ -89,9 +89,9 @@ class RegistrationView (FreeAccessView, ThemeView): # Validate input UserModel = get_user_model() if (re.search(r'^[\w+\s.@+-]+$', user_request['first_name']) == None): - errors.append('First Name may contain only letters, numbers, spaces and @/./+/-/_ characters.') + errors.append('First name may contain only letters, numbers, spaces and @/./+/-/_ characters.') if (re.search(r'^[\w+\s.@+-]+$', user_request['last_name']) == None): - errors.append('Last Name may contain only letters, numbers, spaces and @/./+/-/_ characters.') + errors.append('Last name may contain only letters, numbers, spaces and @/./+/-/_ characters.') # checking in django_db !! if PendingUser.objects.filter(email__iexact = user_request['email']): errors.append('Email is pending for validation. Please provide a new email address.') diff --git a/portal/slicerequestview.py b/portal/slicerequestview.py index 8cd0af43..734ac9cd 100644 --- a/portal/slicerequestview.py +++ b/portal/slicerequestview.py @@ -14,7 +14,7 @@ from ui.topmenu import topmenu_items_live, the_user from myslice.theme import ThemeView -import json, time +import json, time, re class SliceRequestView (LoginRequiredAutoLogoutView, ThemeView): template_name = 'slicerequest_view.html' @@ -31,7 +31,9 @@ class SliceRequestView (LoginRequiredAutoLogoutView, ThemeView): """ """ errors = [] - + slice_name ='' + purpose='' + exp_url='' # Retrieve the list of authorities authorities_query = Query.get('authority').select('name', 'authority_hrn') authorities = execute_admin_query(wsgi_request, authorities_query) @@ -105,11 +107,13 @@ class SliceRequestView (LoginRequiredAutoLogoutView, ThemeView): 'authority_hrn' : authority_hrn, 'organization' : wsgi_request.POST.get('org_name', ''), 'slice_name' : wsgi_request.POST.get('slice_name', ''), - 'number_of_nodes' : wsgi_request.POST.get('number_of_nodes', ''), + 'exp_url' : wsgi_request.POST.get('exp_url', ''), 'purpose' : wsgi_request.POST.get('purpose', ''), 'current_site' : current_site } + exp_url = slice_request['exp_url'] + authority_hrn = slice_request['authority_hrn'] if (authority_hrn is None or authority_hrn == ''): errors.append('Please, select an authority') @@ -117,7 +121,11 @@ class SliceRequestView (LoginRequiredAutoLogoutView, ThemeView): # What kind of slice name is valid? slice_name = slice_request['slice_name'] if (slice_name is None or slice_name == ''): - errors.append('Slice Name is mandatory') + errors.append('Slice name is mandatory') + + if (re.search(r'^[A-Za-z0-9_]*$', slice_name) == None): + errors.append('Slice name may contain only letters, numbers, and underscore.') + purpose = slice_request['purpose'] if (purpose is None or purpose == ''): @@ -141,8 +149,11 @@ class SliceRequestView (LoginRequiredAutoLogoutView, ThemeView): 'username': wsgi_request.user.email, 'topmenu_items': topmenu_items_live('Request a slice', page), 'errors': errors, + 'slice_name': slice_name, + 'purpose': purpose, 'email': user_email, 'user_hrn': user_hrn, + 'exp_url': exp_url, 'pi': pi, 'authority_name': authority_name, 'cc_myself': True, diff --git a/portal/templates/onelab/onelab_slicerequest_view.html b/portal/templates/onelab/onelab_slicerequest_view.html index 3c383460..82ccd16e 100644 --- a/portal/templates/onelab/onelab_slicerequest_view.html +++ b/portal/templates/onelab/onelab_slicerequest_view.html @@ -30,7 +30,7 @@
-
@@ -43,8 +43,8 @@ {%endif%}
- +