mirror of https://github.com/jumpserver/jumpserver
Finish user detail asset grant ..
parent
7d3474aeea
commit
df281defd8
|
@ -7,7 +7,7 @@ def get_user_group_granted_asset_groups(user_group):
|
|||
"""Return asset groups granted of the user group
|
||||
|
||||
:param user_group: Instance of :class: ``UserGroup``
|
||||
:return: {asset_group1: {system_user1, }, asset_group2: {system_user1, system_user2]}
|
||||
:return: {asset1: {system_user1, }, asset1: {system_user1, system_user2]}
|
||||
"""
|
||||
asset_groups = {}
|
||||
asset_permissions = user_group.asset_permissions.all()
|
||||
|
@ -61,6 +61,7 @@ def get_user_granted_asset_groups_direct(user):
|
|||
if asset_group in asset_groups:
|
||||
asset_groups[asset_group] |= set(asset_permission.system_users.all())
|
||||
else:
|
||||
setattr(asset_group, 'is_inherit_from_user_group', False)
|
||||
asset_groups[asset_group] = set(asset_permission.system_users.all())
|
||||
|
||||
return asset_groups
|
||||
|
@ -88,6 +89,7 @@ def get_user_granted_asset_groups_inherit_from_user_groups(user):
|
|||
if asset_group in asset_groups:
|
||||
asset_groups[asset_group] |= set(asset_permission.system_users.all())
|
||||
else:
|
||||
setattr(asset_group, 'is_inherit_from_user_group', True)
|
||||
asset_groups[asset_group] = set(asset_permission.system_users.all())
|
||||
|
||||
return asset_groups
|
||||
|
@ -130,6 +132,8 @@ def get_user_granted_assets_direct(user):
|
|||
if asset in assets:
|
||||
assets[asset] |= set(asset_permission.system_users.all())
|
||||
else:
|
||||
setattr(asset, 'is_inherit_from_user_groups', False)
|
||||
setattr(asset, 'is_inherit_from_user_groups', False)
|
||||
assets[asset] = set(asset_permission.system_users.all())
|
||||
|
||||
return assets
|
||||
|
@ -150,6 +154,7 @@ def get_user_granted_assets_inherit_from_user_groups(user):
|
|||
if asset in assets:
|
||||
assets[asset] |= assets_inherited[asset]
|
||||
else:
|
||||
setattr(asset, 'is_inherit_from_user_groups', True)
|
||||
assets[asset] = assets_inherited[asset]
|
||||
|
||||
return assets
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for asset in object_list %}
|
||||
{% for asset, system_users in object_list %}
|
||||
<tr class="gradeX">
|
||||
<td class="text-center">
|
||||
<a href="{% url 'assets:asset-detail' pk=asset.id %}">
|
||||
|
@ -83,7 +83,7 @@
|
|||
</td>
|
||||
<td class="text-center">{{ asset.ip }}</td>
|
||||
<td class="text-center">{{ asset.port }}</td>
|
||||
<td class="text-center">{{ assets.asset }}</td>
|
||||
<td class="text-center">{{ system_users|join_attr:"name" }}</td>
|
||||
<td class="text-center">
|
||||
{% if asset.is_valid %}
|
||||
<i class="fa fa-check text-navy"></i>
|
||||
|
@ -92,8 +92,7 @@
|
|||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-danger btn-xs btn_delete_user_group {% if not asset.is_valid %} disabled {% endif %}" type="button" style="float: right;"><i class="fa fa-minus"></i></button>
|
||||
</td>
|
||||
<button class="btn btn-danger btn-xs btn_delete_user_group {% if asset.is_inherit_from_user_groups or asset.is_inherit_from_asset_groups %} disabled {% endif %}" type="button" style="float: right;"><i class="fa fa-minus"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@ -134,7 +133,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for asset_group in asset_groups %}
|
||||
{% for asset_group, system_users in asset_groups %}
|
||||
<tr class="gradeX">
|
||||
<td class="text-center">
|
||||
<a href="{% url 'assets:asset-group-detail' pk=asset_group.id %}">
|
||||
|
@ -142,9 +141,9 @@
|
|||
</a>
|
||||
</td>
|
||||
<td class="text-center">{{ asset_group.assets.count }}</td>
|
||||
<td class="text-center">{{ asset_group.name }}</td>
|
||||
<td class="text-center">{{ system_users|join_attr:"name" }}</td>
|
||||
<td>
|
||||
<button class="btn btn-danger btn-xs btn_delete_user_group {% if not asset.is_valid %} disabled {% endif %}" type="button" style="float: right;"><i class="fa fa-minus"></i></button>
|
||||
<button class="btn btn-danger btn-xs btn_delete_user_group {% if not asset_group.is_inherit_from_user_groups %} disabled {% endif %}" type="button" style="float: right;"><i class="fa fa-minus"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
|
|
@ -427,15 +427,20 @@ class UserGrantedAssetView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
|
|||
return super(UserGrantedAssetView, self).get(request, *args, **kwargs)
|
||||
|
||||
def get_queryset(self):
|
||||
self.assets_granted = get_user_granted_assets(self.object)
|
||||
return self.assets_granted.keys()
|
||||
# Convert format from {'asset': ['system_users'], ..} to
|
||||
# [('asset', ['system_users']), ('asset', ['system_users']))
|
||||
assets_granted = [(asset, system_users) for asset, system_users in
|
||||
get_user_granted_assets(self.object).items()]
|
||||
|
||||
return assets_granted
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
asset_groups = [(asset_group, system_users) for asset_group, system_users in
|
||||
get_user_granted_asset_groups(self.object).items()]
|
||||
context = {
|
||||
'app': 'User',
|
||||
'action': 'User granted asset',
|
||||
'asset_groups': get_user_granted_asset_groups(self.object),
|
||||
'assets': self.assets_granted,
|
||||
'asset_groups': asset_groups,
|
||||
}
|
||||
kwargs.update(context)
|
||||
return super(UserGrantedAssetView, self).get_context_data(**kwargs)
|
||||
|
|
Loading…
Reference in New Issue