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) |         return render(request, self.template_name, context) | ||||||
| 
 | 
 | ||||||
|     def post(self, request, *args, **kwargs): |     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 |         # Check ssh public key and then proceed | ||||||
|         form = self.get_form() |         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 |         # SSH key validation is required only if the user doesn't have an | ||||||
|         # key |         # existing key and user has input some value in the add ssh key fields | ||||||
|         if len(get_all_public_keys(self.request.user)) == 0: |         if (len(get_all_public_keys(self.request.user)) > 0 and | ||||||
|             form.fields['name'].required = required |                 (len(form.data.get('public_key')) == 0 and | ||||||
|             form.fields['public_key'].required = required |                          len(form.data.get('name')) == 0)): | ||||||
|  |             required = False | ||||||
|  |         form.fields['name'].required = required | ||||||
|  |         form.fields['public_key'].required = required | ||||||
|         if not form.is_valid(): |         if not form.is_valid(): | ||||||
|             response = { |             response = { | ||||||
|                 'status': False, |                 'status': False, | ||||||
|  | @ -609,9 +608,14 @@ class OrderConfirmationView(DetailView, FormView): | ||||||
|             } |             } | ||||||
|             return JsonResponse(response) |             return JsonResponse(response) | ||||||
| 
 | 
 | ||||||
|         # We have a valid SSH key from the user, save it in opennebula and db |         if required: | ||||||
|         # and proceed further |             # We have a valid SSH key from the user, save it in opennebula and | ||||||
|         form.save() |             # 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: |         if 'token' in request.session: | ||||||
|             card_details = stripe_utils.get_cards_details_from_token( |             card_details = stripe_utils.get_cards_details_from_token( | ||||||
|  |  | ||||||
|  | @ -187,7 +187,8 @@ class UserHostingKeyForm(forms.ModelForm): | ||||||
|         alerts the user of it. |         alerts the user of it. | ||||||
|         :return: |         :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') |             return self.data.get('public_key') | ||||||
|         KEY_ERROR_MESSAGE = _("Please input a proper SSH key") |         KEY_ERROR_MESSAGE = _("Please input a proper SSH key") | ||||||
|         openssh_pubkey_str = self.data.get('public_key').strip() |         openssh_pubkey_str = self.data.get('public_key').strip() | ||||||
|  |  | ||||||
|  | @ -1004,13 +1004,16 @@ class OrdersHostingDetailView(LoginRequiredMixin, DetailView, FormView): | ||||||
|     def post(self, request): |     def post(self, request): | ||||||
|         # Check ssh public key and then proceed |         # Check ssh public key and then proceed | ||||||
|         form = self.get_form() |         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 |         # SSH key validation is required only if the user doesn't have an | ||||||
|         # key |         # existing key and user has input some value in the add ssh key fields | ||||||
|         if len(get_all_public_keys(self.request.user)) == 0: |         if (len(get_all_public_keys(self.request.user)) > 0 and | ||||||
|             form.fields['name'].required = required |                 (len(form.data.get('public_key')) == 0 and | ||||||
|             form.fields['public_key'].required = required |                          len(form.data.get('name')) == 0)): | ||||||
|  |             required = False | ||||||
|  |         form.fields['name'].required = required | ||||||
|  |         form.fields['public_key'].required = required | ||||||
|         if not form.is_valid(): |         if not form.is_valid(): | ||||||
|             response = { |             response = { | ||||||
|                 'status': False, |                 'status': False, | ||||||
|  | @ -1019,9 +1022,10 @@ class OrdersHostingDetailView(LoginRequiredMixin, DetailView, FormView): | ||||||
|             } |             } | ||||||
|             return JsonResponse(response) |             return JsonResponse(response) | ||||||
| 
 | 
 | ||||||
|         # We have a valid SSH key from the user, save it in opennebula and db |         if required: | ||||||
|         # and proceed further |             # We have a valid SSH key from the user, save it in opennebula and | ||||||
|         form.save() |             # db and proceed further | ||||||
|  |             form.save() | ||||||
| 
 | 
 | ||||||
|         template = request.session.get('template') |         template = request.session.get('template') | ||||||
|         specs = request.session.get('specs') |         specs = request.session.get('specs') | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue