Merge "network_topology: check policy for UI elements"
This commit is contained in:
commit
60c4b2fd74
@ -22,6 +22,7 @@
|
||||
[[/console]]
|
||||
</div>
|
||||
[[#type]]
|
||||
[[#allow_delete]]
|
||||
<div class="cell delete">
|
||||
<button class="delete-device btn btn-danger btn-xs [[type]]"
|
||||
data-type="[[type]]" data-device-id="[[id]]"
|
||||
@ -29,6 +30,7 @@
|
||||
[[delete_label]]
|
||||
</button>
|
||||
</div>
|
||||
[[/allow_delete]]
|
||||
[[/type]]
|
||||
</div>
|
||||
</div>
|
||||
|
@ -83,12 +83,13 @@ class NetworkTopologyTests(test.TestCase):
|
||||
expect_server_urls = []
|
||||
for server in self.servers.list():
|
||||
expect_server = {
|
||||
'id': server.id,
|
||||
'name': server.name,
|
||||
'status': server.status.title(),
|
||||
'allow_delete_server': True,
|
||||
'original_status': server.status,
|
||||
'task': None,
|
||||
'url': '/project/instances/%s/' % server.id
|
||||
'id': server.id,
|
||||
'url': '/project/instances/%s/' % server.id,
|
||||
}
|
||||
if server.status != 'BUILD' and with_console:
|
||||
expect_server['console'] = 'auto_console'
|
||||
@ -133,6 +134,7 @@ class NetworkTopologyTests(test.TestCase):
|
||||
'router:external': net.is_router_external,
|
||||
'status': net.status.title(),
|
||||
'allow_delete_subnet': True,
|
||||
'allow_delete_network': True,
|
||||
'original_status': net.status,
|
||||
'subnets': [{
|
||||
'cidr': subnet.cidr,
|
||||
|
@ -233,9 +233,12 @@ class JSONView(View):
|
||||
console_type = settings.CONSOLE_TYPE
|
||||
# lowercase of the keys will be used at the end of the console URL.
|
||||
for server in servers:
|
||||
allow_delete_server = policy.check(
|
||||
(("compute", "os_compute_api:servers:delete"),), request)
|
||||
server_data = {'name': server.name,
|
||||
'status': self.trans.instance[server.status],
|
||||
'original_status': server.status,
|
||||
'allow_delete_server': allow_delete_server,
|
||||
'task': getattr(server, 'OS-EXT-STS:task_state'),
|
||||
'id': server.id}
|
||||
# Avoid doing extra calls for console if the server is in
|
||||
@ -276,6 +279,12 @@ class JSONView(View):
|
||||
target={'network:tenant_id': getattr(network,
|
||||
'tenant_id', None)}
|
||||
)
|
||||
allow_delete_network = policy.check(
|
||||
(("network", "delete_network"),),
|
||||
request,
|
||||
target={'network:tenant_id': getattr(network,
|
||||
'tenant_id', None)}
|
||||
)
|
||||
obj = {'name': network.name_or_id,
|
||||
'id': network.id,
|
||||
'subnets': [{'id': subnet.id,
|
||||
@ -283,6 +292,7 @@ class JSONView(View):
|
||||
for subnet in network.subnets],
|
||||
'status': self.trans.network[network.status],
|
||||
'allow_delete_subnet': allow_delete_subnet,
|
||||
'allow_delete_network': allow_delete_network,
|
||||
'original_status': network.status,
|
||||
'router:external': network['is_router_external']}
|
||||
self.add_resource_url('horizon:project:networks:subnets:detail',
|
||||
|
@ -1056,6 +1056,7 @@ horizon.network_topology = {
|
||||
htmlData.console_id = d.id;
|
||||
htmlData.ips = d.ip_addresses;
|
||||
htmlData.console = d.console;
|
||||
htmlData.allow_delete = d.allow_delete_server;
|
||||
html = balloonTmpl.render(htmlData,{
|
||||
table1:deviceTmpl,
|
||||
table2:instanceTmpl
|
||||
@ -1067,6 +1068,7 @@ horizon.network_topology = {
|
||||
htmlData.subnet = subnets;
|
||||
if (d instanceof Network) {
|
||||
htmlData.delete_label = gettext('Delete Network');
|
||||
htmlData.allow_delete = d.allow_delete_network;
|
||||
if (d.allow_delete_subnet){
|
||||
htmlData.allow_delete_subnet = d.allow_delete_subnet;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user