mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-06-24 14:02:01 +00:00
[Update] 授权显示节点下所有的资产 (#3001)
This commit is contained in:
parent
d97654b851
commit
8f5e91bc34
@ -23,7 +23,7 @@
|
|||||||
<script>
|
<script>
|
||||||
var treeUrl = "{% url 'api-perms:my-nodes-as-tree' %}?&cache_policy=1";
|
var treeUrl = "{% url 'api-perms:my-nodes-as-tree' %}?&cache_policy=1";
|
||||||
var assetTableUrl = "{% url 'api-perms:my-assets' %}?cache_policy=1";
|
var assetTableUrl = "{% url 'api-perms:my-assets' %}?cache_policy=1";
|
||||||
var selectUrl = '{% url "api-perms:my-node-assets" node_id=DEFAULT_PK %}?cache_policy=1';
|
var selectUrl = '{% url "api-perms:my-node-assets" node_id=DEFAULT_PK %}?cache_policy=1&all=1';
|
||||||
var showAssetHref = false; // Need input default true
|
var showAssetHref = false; // Need input default true
|
||||||
var actions = {
|
var actions = {
|
||||||
targets: 4, createdCell: function (td, cellData) {
|
targets: 4, createdCell: function (td, cellData) {
|
||||||
|
@ -88,13 +88,18 @@ class UserGrantedNodeAssetsApi(UserPermissionCacheMixin, GrantAssetsMixin, ListA
|
|||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
user = self.get_object()
|
user = self.get_object()
|
||||||
|
query_all = self.request.query_params.get("all", "0") == "1"
|
||||||
self.util = AssetPermissionUtil(user, cache_policy=self.cache_policy)
|
self.util = AssetPermissionUtil(user, cache_policy=self.cache_policy)
|
||||||
key = self.get_node_key()
|
key = self.get_node_key()
|
||||||
nodes_items = self.util.get_nodes_with_assets()
|
nodes_items = self.util.get_nodes_with_assets()
|
||||||
assets_system_users = {}
|
assets_system_users = {}
|
||||||
|
if query_all:
|
||||||
|
k = "all_assets"
|
||||||
|
else:
|
||||||
|
k = "assets"
|
||||||
for item in nodes_items:
|
for item in nodes_items:
|
||||||
if item["key"] == key:
|
if item["key"] == key:
|
||||||
assets_system_users = item["assets"]
|
assets_system_users = item[k]
|
||||||
break
|
break
|
||||||
assets = []
|
assets = []
|
||||||
for asset_id, system_users in assets_system_users.items():
|
for asset_id, system_users in assets_system_users.items():
|
||||||
|
@ -203,14 +203,16 @@ class GenerateTree:
|
|||||||
nodes = []
|
nodes = []
|
||||||
for key, values in nodes_with_assets_amount.items():
|
for key, values in nodes_with_assets_amount.items():
|
||||||
assets = {asset_id: self.assets.get(asset_id) for asset_id in values["assets"]}
|
assets = {asset_id: self.assets.get(asset_id) for asset_id in values["assets"]}
|
||||||
|
all_assets = {asset_id: self.assets.get(asset_id) for asset_id in values["all_assets"]}
|
||||||
nodes.append({
|
nodes.append({
|
||||||
"key": key, "assets": assets,
|
"key": key, "assets": assets, "all_assets": all_assets,
|
||||||
"assets_amount": values["assets_amount"]
|
"assets_amount": values["assets_amount"]
|
||||||
})
|
})
|
||||||
# 如果返回空节点,页面构造授权资产树报错
|
# 如果返回空节点,页面构造授权资产树报错
|
||||||
if not nodes:
|
if not nodes:
|
||||||
nodes.append({
|
nodes.append({
|
||||||
"key": const.EMPTY_NODE_KEY, "assets": {}, "assets_amount": 0
|
"key": const.EMPTY_NODE_KEY, "assets": {}, "assets_amount": 0,
|
||||||
|
"all_assets": {},
|
||||||
})
|
})
|
||||||
nodes.sort(key=lambda n: self.key_sort(n["key"]))
|
nodes.sort(key=lambda n: self.key_sort(n["key"]))
|
||||||
self._nodes_with_assets = nodes
|
self._nodes_with_assets = nodes
|
||||||
|
@ -102,7 +102,8 @@ class PermAssetsAmountUtil(PermStackUtilMixin):
|
|||||||
self.debug("出栈: {} 栈顶: {}".format(
|
self.debug("出栈: {} 栈顶: {}".format(
|
||||||
_node['key'], self.stack.top['key'] if self.stack.top else None)
|
_node['key'], self.stack.top['key'] if self.stack.top else None)
|
||||||
)
|
)
|
||||||
_node["assets_amount"] = len(_node["all_assets"] | _node["assets"])
|
_node["all_assets"] = _node["all_assets"] | _node["assets"]
|
||||||
|
_node["assets_amount"] = len(_node["all_assets"])
|
||||||
self._nodes[_node.pop("key")] = _node
|
self._nodes[_node.pop("key")] = _node
|
||||||
|
|
||||||
if not self.stack.top:
|
if not self.stack.top:
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
{% block custom_foot_js %}
|
{% block custom_foot_js %}
|
||||||
<script>
|
<script>
|
||||||
var assetTableUrl = "{% url 'api-perms:user-assets' pk=object.id %}?cache_policy=1";
|
var assetTableUrl = "{% url 'api-perms:user-assets' pk=object.id %}?cache_policy=1";
|
||||||
var selectUrl = '{% url "api-perms:user-node-assets" pk=object.id node_id=DEFAULT_PK %}?cache_policy=1';
|
var selectUrl = '{% url "api-perms:user-node-assets" pk=object.id node_id=DEFAULT_PK %}?cache_policy=1&all=1';
|
||||||
var treeUrl = "{% url 'api-perms:user-nodes-as-tree' pk=object.id %}?&cache_policy=1";
|
var treeUrl = "{% url 'api-perms:user-nodes-as-tree' pk=object.id %}?&cache_policy=1";
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
<script>
|
<script>
|
||||||
var treeUrl = "{% url 'api-perms:user-group-nodes-as-tree' pk=object.id %}?cache_policy=1";
|
var treeUrl = "{% url 'api-perms:user-group-nodes-as-tree' pk=object.id %}?cache_policy=1";
|
||||||
var assetTableUrl = "{% url 'api-perms:user-group-assets' pk=object.id %}?cache_policy=1";
|
var assetTableUrl = "{% url 'api-perms:user-group-assets' pk=object.id %}?cache_policy=1";
|
||||||
var selectUrl = '{% url "api-perms:user-group-node-assets" pk=object.id node_id=DEFAULT_PK %}?cache_policy=1';
|
var selectUrl = '{% url "api-perms:user-group-node-assets" pk=object.id node_id=DEFAULT_PK %}?cache_policy=1&all=1';
|
||||||
var showAssetHref = true; // Need input default true
|
var showAssetHref = true; // Need input default true
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user