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