Show 'Tenant name' column for non-admin users

To identify own packages and foreign (public) packages,
column with tenant teme is provided.
It is shown for admin, and now enabled for non-admin.

Since non-admin have no rights to identify tenant by id,
'other' is used instead for non-user tenant.

Change-Id: I482b89d6659297d8dd3dc5c7882408278b471220
Related-Bug: 1496418
This commit is contained in:
Ekaterina Chernova 2015-09-16 19:46:47 +03:00
parent 147864d5a6
commit 161f016a35
2 changed files with 7 additions and 12 deletions

View File

@ -230,15 +230,3 @@ class PackageDefinitionsTable(tables.DataTable):
ToggleEnabled,
TogglePublicEnabled,
DeletePackage)
def get_columns(self):
"""Hides tenant name column for a regular user.
Since there are no enough rights to get this information.
"""
columns = super(PackageDefinitionsTable, self).get_columns()
if not self.request.user.is_superuser:
for i, column in enumerate(columns):
if column.name == 'tenant_name':
columns[i].classes.append('hide')
return columns

View File

@ -131,6 +131,13 @@ class PackageDefinitionsView(horizon_tables.DataTableView):
tenent_name_by_id = {tenant.id: tenant.name for tenant in tenants}
for i, p in enumerate(packages):
packages[i].tenant_name = tenent_name_by_id.get(p.owner_id)
else:
current_tenant = self.request.session['token'].tenant
for i, package in enumerate(packages):
if package.owner_id == current_tenant['id']:
packages[i].tenant_name = current_tenant['name']
else:
packages[i].tenant_name = 'other'
return packages
def get_context_data(self, **kwargs):