From abfafd7a0cdc64c165741aebaa4f9dac43b13ac6 Mon Sep 17 00:00:00 2001 From: Szabolcs Gelencser <gelencser.szabolcs.94@gmail.com> Date: Tue, 22 May 2018 15:41:17 +0200 Subject: [PATCH] Show permitted leases only on renew dialog --- circle/dashboard/views/vm.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/circle/dashboard/views/vm.py b/circle/dashboard/views/vm.py index 1009995..e57cb49 100644 --- a/circle/dashboard/views/vm.py +++ b/circle/dashboard/views/vm.py @@ -724,8 +724,15 @@ class VmRenewView(FormOperationMixin, VmOperationView): template_name = 'dashboard/_vm-renew.html' def get_form_kwargs(self): - choices = Lease.objects.all() #TODO: filter on permissions instance = self.get_op().instance + user_role_names = [role["name"] for role in self.request.user.roles] + + leases_from_roles = Lease.objects.filter(roles_permitted__role_name__in=user_role_names) + default_lease = Lease.objects.filter(name=settings.DEFAULT_LEASE_NAME) + current_lease = Lease.objects.filter(vmlease__os_server_id=instance.id) + + choices = (leases_from_roles | default_lease | current_lease).distinct() + default = VmLease.objects.get(os_server_id=instance.id).lease # if default and default not in choices: # choices = (choices.distinct() | -- libgit2 0.26.0