Do SSH key validation only if the user doesn't have an existing key and
the user has input some value in the add ssh key field
This commit is contained in:
		
					parent
					
						
							
								34c917acc2
							
						
					
				
			
			
				commit
				
					
						feeb102f92
					
				
			
		
					 3 changed files with 32 additions and 23 deletions
				
			
		|  | @ -588,19 +588,18 @@ class OrderConfirmationView(DetailView, FormView): | |||
|         return render(request, self.template_name, context) | ||||
| 
 | ||||
|     def post(self, request, *args, **kwargs): | ||||
|         user = request.session.get('user') | ||||
|         stripe_api_cus_id = request.session.get('customer') | ||||
|         stripe_utils = StripeUtils() | ||||
| 
 | ||||
|         # Check ssh public key and then proceed | ||||
|         form = self.get_form() | ||||
|         required = 'add_ssh' in self.request.POST | ||||
|         required = True | ||||
| 
 | ||||
|         # SSH key is required only if the user doesn't have an existing | ||||
|         # key | ||||
|         if len(get_all_public_keys(self.request.user)) == 0: | ||||
|             form.fields['name'].required = required | ||||
|             form.fields['public_key'].required = required | ||||
|         # SSH key validation is required only if the user doesn't have an | ||||
|         # existing key and user has input some value in the add ssh key fields | ||||
|         if (len(get_all_public_keys(self.request.user)) > 0 and | ||||
|                 (len(form.data.get('public_key')) == 0 and | ||||
|                          len(form.data.get('name')) == 0)): | ||||
|             required = False | ||||
|         form.fields['name'].required = required | ||||
|         form.fields['public_key'].required = required | ||||
|         if not form.is_valid(): | ||||
|             response = { | ||||
|                 'status': False, | ||||
|  | @ -609,9 +608,14 @@ class OrderConfirmationView(DetailView, FormView): | |||
|             } | ||||
|             return JsonResponse(response) | ||||
| 
 | ||||
|         # We have a valid SSH key from the user, save it in opennebula and db | ||||
|         # and proceed further | ||||
|         form.save() | ||||
|         if required: | ||||
|             # We have a valid SSH key from the user, save it in opennebula and | ||||
|             # db and proceed further | ||||
|             form.save() | ||||
| 
 | ||||
|         user = request.session.get('user') | ||||
|         stripe_api_cus_id = request.session.get('customer') | ||||
|         stripe_utils = StripeUtils() | ||||
| 
 | ||||
|         if 'token' in request.session: | ||||
|             card_details = stripe_utils.get_cards_details_from_token( | ||||
|  |  | |||
|  | @ -187,7 +187,8 @@ class UserHostingKeyForm(forms.ModelForm): | |||
|         alerts the user of it. | ||||
|         :return: | ||||
|         """ | ||||
|         if 'generate' in self.request.POST: | ||||
|         if ('generate' in self.request.POST | ||||
|                 or not self.fields['public_key'].required): | ||||
|             return self.data.get('public_key') | ||||
|         KEY_ERROR_MESSAGE = _("Please input a proper SSH key") | ||||
|         openssh_pubkey_str = self.data.get('public_key').strip() | ||||
|  |  | |||
|  | @ -1004,13 +1004,16 @@ class OrdersHostingDetailView(LoginRequiredMixin, DetailView, FormView): | |||
|     def post(self, request): | ||||
|         # Check ssh public key and then proceed | ||||
|         form = self.get_form() | ||||
|         required = 'add_ssh' in self.request.POST | ||||
|         required = True | ||||
| 
 | ||||
|         # SSH key is required only if the user doesn't have an existing | ||||
|         # key | ||||
|         if len(get_all_public_keys(self.request.user)) == 0: | ||||
|             form.fields['name'].required = required | ||||
|             form.fields['public_key'].required = required | ||||
|         # SSH key validation is required only if the user doesn't have an | ||||
|         # existing key and user has input some value in the add ssh key fields | ||||
|         if (len(get_all_public_keys(self.request.user)) > 0 and | ||||
|                 (len(form.data.get('public_key')) == 0 and | ||||
|                          len(form.data.get('name')) == 0)): | ||||
|             required = False | ||||
|         form.fields['name'].required = required | ||||
|         form.fields['public_key'].required = required | ||||
|         if not form.is_valid(): | ||||
|             response = { | ||||
|                 'status': False, | ||||
|  | @ -1019,9 +1022,10 @@ class OrdersHostingDetailView(LoginRequiredMixin, DetailView, FormView): | |||
|             } | ||||
|             return JsonResponse(response) | ||||
| 
 | ||||
|         # We have a valid SSH key from the user, save it in opennebula and db | ||||
|         # and proceed further | ||||
|         form.save() | ||||
|         if required: | ||||
|             # We have a valid SSH key from the user, save it in opennebula and | ||||
|             # db and proceed further | ||||
|             form.save() | ||||
| 
 | ||||
|         template = request.session.get('template') | ||||
|         specs = request.session.get('specs') | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue