circle: add missing permission checks
Showing
| ... | @@ -243,6 +243,8 @@ class VmDetailVncTokenView(CheckedDetailView): | ... | @@ -243,6 +243,8 @@ class VmDetailVncTokenView(CheckedDetailView): |
| self.object = self.get_object() | self.object = self.get_object() | ||
| if not self.object.has_level(request.user, 'operator'): | if not self.object.has_level(request.user, 'operator'): | ||
| raise PermissionDenied() | raise PermissionDenied() | ||
| if not request.user.has_perm('vm.access_console'): | |||
| raise PermissionDenied() | |||
| if self.object.node: | if self.object.node: | ||
| with instance_activity(code_suffix='console-accessed', | with instance_activity(code_suffix='console-accessed', | ||
| instance=self.object, user=request.user, | instance=self.object, user=request.user, | ||
| ... | @@ -637,7 +639,7 @@ class VmDownloadDiskView(FormOperationMixin, VmOperationView): | ... | @@ -637,7 +639,7 @@ class VmDownloadDiskView(FormOperationMixin, VmOperationView): |
| is_disk_operation = True | is_disk_operation = True | ||
| class VmMigrateView(VmOperationView): | class VmMigrateView(SuperuserRequiredMixin, VmOperationView): | ||
Please
register
or
sign in
to reply
|
|||
| op = 'migrate' | op = 'migrate' | ||
| icon = 'truck' | icon = 'truck' | ||
| ... | @@ -984,7 +986,7 @@ class GroupAclUpdateView(AclUpdateView): | ... | @@ -984,7 +986,7 @@ class GroupAclUpdateView(AclUpdateView): |
| kwargs=self.kwargs)) | kwargs=self.kwargs)) | ||
| class TemplateChoose(TemplateView): | class TemplateChoose(LoginRequiredMixin, TemplateView): | ||
| def get_template_names(self): | def get_template_names(self): | ||
| if self.request.is_ajax(): | if self.request.is_ajax(): | ||
| ... | @@ -1017,6 +1019,9 @@ class TemplateChoose(TemplateView): | ... | @@ -1017,6 +1019,9 @@ class TemplateChoose(TemplateView): |
| else: | else: | ||
| template = get_object_or_404(InstanceTemplate, pk=template) | template = get_object_or_404(InstanceTemplate, pk=template) | ||
| if not template.has_level(user, "user"): | |||
| raise PermissionDenied() | |||
| instance = Instance.create_from_template( | instance = Instance.create_from_template( | ||
| template=template, owner=request.user, is_base=True) | template=template, owner=request.user, is_base=True) | ||
| ... | @@ -1055,7 +1060,7 @@ class TemplateCreate(SuccessMessageMixin, CreateView): | ... | @@ -1055,7 +1060,7 @@ class TemplateCreate(SuccessMessageMixin, CreateView): |
| return kwargs | return kwargs | ||
| def post(self, request, *args, **kwargs): | def post(self, request, *args, **kwargs): | ||
| if not self.request.user.has_perm('vm.create_template'): | if not self.request.user.has_perm('vm.create_base_template'): | ||
| raise PermissionDenied() | raise PermissionDenied() | ||
| form = self.form_class(request.POST, user=request.user) | form = self.form_class(request.POST, user=request.user) | ||
| ... | @@ -1492,6 +1497,9 @@ class VmCreate(LoginRequiredMixin, TemplateView): | ... | @@ -1492,6 +1497,9 @@ class VmCreate(LoginRequiredMixin, TemplateView): |
| return ['dashboard/nojs-wrapper.html'] | return ['dashboard/nojs-wrapper.html'] | ||
| def get(self, request, form=None, *args, **kwargs): | def get(self, request, form=None, *args, **kwargs): | ||
| if not request.user.has_perm('vm.create_vm'): | |||
| raise PermissionDenied() | |||
| form_error = form is not None | form_error = form is not None | ||
| template = (form.template.pk if form_error | template = (form.template.pk if form_error | ||
| else request.GET.get("template")) | else request.GET.get("template")) | ||
| ... | @@ -1597,6 +1605,9 @@ class VmCreate(LoginRequiredMixin, TemplateView): | ... | @@ -1597,6 +1605,9 @@ class VmCreate(LoginRequiredMixin, TemplateView): |
| def post(self, request, *args, **kwargs): | def post(self, request, *args, **kwargs): | ||
| user = request.user | user = request.user | ||
| if not request.user.has_perm('vm.create_vm'): | |||
| raise PermissionDenied() | |||
| # limit chekcs | # limit chekcs | ||
| try: | try: | ||
| limit = user.profile.instance_limit | limit = user.profile.instance_limit | ||
| ... | ... |