Commit a09339a2 by Őry Máté

Merge branch 'issue-279' into 'master'

Issue #279
parents c90bf692 a5106f3d
...@@ -2121,23 +2121,29 @@ class VmCreate(LoginRequiredMixin, TemplateView): ...@@ -2121,23 +2121,29 @@ class VmCreate(LoginRequiredMixin, TemplateView):
if not request.user.has_perm('vm.create_vm'): if not request.user.has_perm('vm.create_vm'):
raise PermissionDenied() raise PermissionDenied()
form_error = form is not None if form is None:
template = (form.template.pk if form_error template_pk = request.GET.get("template")
else request.GET.get("template")) else:
template_pk = form.template.pk
if template_pk:
template = get_object_or_404(InstanceTemplate, pk=template_pk)
if not template.has_level(request.user, 'user'):
raise PermissionDenied()
if form is None:
form = self.form_class(user=request.user, template=template)
else:
templates = InstanceTemplate.get_objects_with_level( templates = InstanceTemplate.get_objects_with_level(
'user', request.user, disregard_superuser=True) 'user', request.user, disregard_superuser=True)
if form is None and template:
form = self.form_class(user=request.user,
template=templates.get(pk=template))
context = self.get_context_data(**kwargs) context = self.get_context_data(**kwargs)
if template: if template_pk:
context.update({ context.update({
'template': 'dashboard/_vm-create-2.html', 'template': 'dashboard/_vm-create-2.html',
'box_title': _('Customize VM'), 'box_title': _('Customize VM'),
'ajax_title': True, 'ajax_title': True,
'vm_create_form': form, 'vm_create_form': form,
'template_o': templates.get(pk=template), 'template_o': template,
}) })
else: else:
context.update({ context.update({
...@@ -2163,18 +2169,15 @@ class VmCreate(LoginRequiredMixin, TemplateView): ...@@ -2163,18 +2169,15 @@ class VmCreate(LoginRequiredMixin, TemplateView):
def __create_customized(self, request, *args, **kwargs): def __create_customized(self, request, *args, **kwargs):
user = request.user user = request.user
# no form yet, using POST directly:
template = get_object_or_404(InstanceTemplate,
pk=request.POST.get("template"))
form = self.form_class( form = self.form_class(
request.POST, user=request.user, request.POST, user=request.user, template=template)
template=InstanceTemplate.objects.get(
pk=request.POST.get("template")
)
)
if not form.is_valid(): if not form.is_valid():
return self.get(request, form, *args, **kwargs) return self.get(request, form, *args, **kwargs)
post = form.cleaned_data post = form.cleaned_data
template = InstanceTemplate.objects.get(pk=post['template'])
# permission check
if not template.has_level(user, 'user'): if not template.has_level(user, 'user'):
raise PermissionDenied() raise PermissionDenied()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment