X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fviews.py;h=abbb36e40c07b89f51dc9773c7e037e62d23b2e1;hb=58e800e51fa670234f3933ece4e9d5c59383226d;hp=3b8da8588b309d4fcb39e5af64699d52c3059ac3;hpb=7cf740311b9972fdca71751e93133fc86ba85360;p=myslice.git diff --git a/portal/views.py b/portal/views.py index 3b8da858..abbb36e4 100644 --- a/portal/views.py +++ b/portal/views.py @@ -473,7 +473,47 @@ class UserValidateView(ActivationView): # View for my_account form def my_account(request): - return render(request, 'my_account.html') + return render(request, 'my_account.html', { + #'form': form, + 'topmenu_items': topmenu_items('My Account', request), + 'username': the_user (request) + }) + +# View for platforms +class PlatformsView(TemplateView): + template_name = "platforms.html" + + def get_context_data(self, **kwargs): + page = Page(self.request) + + network_query = Query().get('local:platform').select('platform') + page.enqueue_query(network_query) + + page.expose_js_metadata() + page.expose_queries() + + networklist = SimpleList( + title = None, + page = page, + key = 'platform', + query = network_query, + ) + + context = super(PlatformsView, self).get_context_data(**kwargs) + context['person'] = self.request.user + context['networks'] = networklist.render(self.request) + + # XXX This is repeated in all pages + # more general variables expected in the template + context['title'] = 'Platforms connected to MySlice' + # the menu items on the top + context['topmenu_items'] = topmenu_items('Platforms', self.request) + # so we can sho who is logged + context['username'] = the_user(self.request) + + context.update(page.prelude_env()) + + return context #my_acc form value processing def acc_process(request): @@ -551,7 +591,7 @@ def acc_process(request): file_name = up_file.name file_extension = os.path.splitext(file_name)[1] allowed_extension = ['.pub','.txt'] - if file_extension in allowed_extension: + if file_extension in allowed_extension and re.search(r'ssh-rsa',file_content): file_content = '{"user_public_key":"'+ file_content +'"}' file_content = re.sub("\r", "", file_content) file_content = re.sub("\n", "\\n",file_content) @@ -560,16 +600,16 @@ def acc_process(request): get_user.save() return HttpResponse('Success: Publickey uploaded! Old records overwritten') else: - return HttpResponse('Please upload a valid public key [.txt or .pub].') + return HttpResponse('Please upload a valid RSA public key [.txt or .pub].') else: message = 'You submitted an empty form.' return HttpResponse(message) def register_4m_f4f(request): - return render(request, 'register_4m_f4f.html') + #return render(request, 'register_4m_f4f.html') -def reg_4m_f4f_process(request): +#def reg_4m_f4f_process(request): if 'submit' in request.POST: #get_email = PendingUser.objects.get(email) reg_fname = request.POST['firstname'] @@ -579,13 +619,21 @@ def reg_4m_f4f_process(request): #POST value validation if (re.search(r'^[\w+\s.@+-]+$', reg_fname)==None): - return HttpResponse("Only Letters, Numbers, - and _ allowd in First Name") + messages.error(request, 'First Name may contain only letters, numbers, spaces and @/./+/-/_ characters.') + #return HttpResponse("Only Letters, Numbers, - and _ allowd in First Name") + return render(request, 'register_4m_f4f.html') if (re.search(r'^[\w+\s.@+-]+$', reg_lname) == None): - return HttpResponse("Only Letters, Numbers, - and _ is allowed in Last name") + messages.error(request, 'Last Name may contain only letters, numbers, spaces and @/./+/-/_ characters.') + #return HttpResponse("Only Letters, Numbers, - and _ is allowed in Last name") + return render(request, 'register_4m_f4f.html') if (re.search(r'^[\w+\s.@+-]+$', reg_aff) == None): - return HttpResponse("Only Letters, Numbers and _ is allowed in Affiliation") + messages.error(request, 'Affiliation may contain only letters, numbers, spaces and @/./+/-/_ characters.') + #return HttpResponse("Only Letters, Numbers and _ is allowed in Affiliation") + return render(request, 'register_4m_f4f.html') if PendingUser.objects.filter(email__iexact=reg_email): - return HttpResponse("Email Already exists") + messages.error(request, 'Email already registered.Please provide a new email address.') + #return HttpResponse("Email Already exists") + return render(request, 'register_4m_f4f.html') if 'generate' in request.POST['question']: #import os #from M2Crypto import Rand, RSA, BIO @@ -622,20 +670,20 @@ def reg_4m_f4f_process(request): file_name = up_file.name file_extension = os.path.splitext(file_name)[1] allowed_extension = ['.pub','.txt'] - if file_extension in allowed_extension: + if file_extension in allowed_extension and re.search(r'ssh-rsa',file_content): keypair = '{"user_public_key":"'+ file_content +'"}' keypair = re.sub("\r", "", keypair) keypair = re.sub("\n", "\\n",keypair) keypair = ''.join(keypair.split()) else: - return HttpResponse('Please upload a valid public key [.txt or .pub].') + return HttpResponse('Please upload a valid RSA public key [.txt or .pub].') b = PendingUser(first_name=reg_fname, last_name=reg_lname, affiliation=reg_aff, email=reg_email, password=request.POST['password'], keypair=keypair) b.save() - return HttpResponse('Registration Successful. Please wait for account validation.') - + return render(request, 'user_register_complete.html') + return render(request, 'register_4m_f4f.html') # view for contact form @@ -661,9 +709,12 @@ def contact(request): return render(request,'contact_sent.html') # Redirect after POST else: form = ContactForm() # An unbound form - + return render(request, 'contact.html', { 'form': form, + 'topmenu_items': topmenu_items('Contact Us', request), + 'username': the_user (request) + })