diff options
Diffstat (limited to 'openstack_dashboard/dashboards/project/floating_ips/workflows.py')
-rw-r--r-- | openstack_dashboard/dashboards/project/floating_ips/workflows.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/openstack_dashboard/dashboards/project/floating_ips/workflows.py b/openstack_dashboard/dashboards/project/floating_ips/workflows.py index 44da77da0..b3a0e0338 100644 --- a/openstack_dashboard/dashboards/project/floating_ips/workflows.py +++ b/openstack_dashboard/dashboards/project/floating_ips/workflows.py @@ -23,9 +23,9 @@ from horizon.utils import memoized from horizon import workflows from openstack_dashboard import api +from openstack_dashboard import policy from openstack_dashboard.utils import filters - ALLOCATE_URL = "horizon:project:floating_ips:allocate" @@ -34,8 +34,7 @@ class AssociateIPAction(workflows.Action): ip_id = forms.ThemableDynamicTypedChoiceField( label=_("IP Address"), coerce=filters.get_int_or_uuid, - empty_value=None, - add_item_link=ALLOCATE_URL + empty_value=None ) instance_id = forms.ThemableChoiceField( label=_("Port to be associated") @@ -56,6 +55,11 @@ class AssociateIPAction(workflows.Action): # and set the initial value of instance_id ChoiceField. q_instance_id = self.request.GET.get('instance_id') q_port_id = self.request.GET.get('port_id') + + if policy.check((("network", "create_floatingip"),), + request=self.request): + self.fields['ip_id'].widget.add_item_link = ALLOCATE_URL + if q_instance_id: targets = self._get_target_list(q_instance_id) # Setting the initial value here is required to avoid a situation |