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…
Reference in a new issue