From 34ececec5c03aa6ca7fe3b7e0b9c28fb7cf49d91 Mon Sep 17 00:00:00 2001 From: Yasin <mohammed-yasin.rahman@lip6.fr> 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 @@ <input type="email" class="form-control" id="email" style="width:300px" value="{{ email }}" readonly="readonly"> </div> <div class="form-group"> - <input type="text" class="form-control" name="slice_name" id="slice_name" style="width:300px" placeholder="Slice Name" + <input type="text" class="form-control" name="slice_name" id="slice_name" style="width:300px" placeholder="Slice name" value="{{slice_name}}" title="Please enter a name for your slice"required="required"> </div> <div class="form-group"> @@ -43,8 +43,8 @@ {%endif%} </div> <div class="form-group"> - <input type="text" class="form-control" name="number_of_nodes" id="number_of_nodes" style="width:300px" placeholder="Experiment URL (if one exists)" - title="Please provide the url of your experiment if you have one."> + <input type="text" class="form-control" name="exp_url" id="exp_url" style="width:300px" placeholder="Experiment URL (if one exists)" + title="Please provide the url of your experiment if you have one." value="{{exp_url}}"> </div> <div class="form-group"> <textarea id="purpose" name="purpose" class="form-control" rows="6" placeholder="Experiment Purpose" style="width:300px" diff --git a/portal/templates/slice_request_email.html b/portal/templates/slice_request_email.html index 417a8bd6..8306c2bb 100644 --- a/portal/templates/slice_request_email.html +++ b/portal/templates/slice_request_email.html @@ -2,10 +2,10 @@ <br> <h1>NEW SLICE REQUEST</h1> <br> -<b>slice name :</b> {{slice_name}}</br> -<b>number of nodes :</b> {{number_of_nodes}}</br> -<b>purpose :</b> {{purpose}}</br> -<b>organization :</b> {{organization}} -<b>email :</b> {{email}}</br> +<b>Slice name :</b> {{slice_name}}</br> +<b>URL :</b> {{exp_url}}</br> +<b>Purpose :</b> {{purpose}}</br> +<b>Organization :</b> {{organization}}</br> +<b>Email :</b> {{email}}</br> <b>Portal url :</b> {{current_site}}</br> diff --git a/portal/templates/slice_request_email.txt b/portal/templates/slice_request_email.txt index 6cd5a2db..c8a51b52 100644 --- a/portal/templates/slice_request_email.txt +++ b/portal/templates/slice_request_email.txt @@ -1,9 +1,9 @@ NEW SLICE REQUEST -slice name : {{slice_name}} -number of nodes : {{number_of_nodes}} -purpose : {{purpose}} -email : {{email}} -organization : {{organization}} +Slice name : {{slice_name}} +URL : {{exp_url}} +Purpose : {{purpose}} +Email : {{email}} +Organization : {{organization}} Portal url : {{current_site}} -- 2.47.0