mirror of https://github.com/jumpserver/jumpserver
fix: 开启授权规则signal信号监听;解决授权规则变动用户授权树没有即使刷新的问题
parent
b851fd1069
commit
ab6518e60e
|
@ -103,6 +103,7 @@ def on_asset_nodes_add(instance, action, reverse, pk_set, **kwargs):
|
||||||
# m2m_model.objects.bulk_create(to_create)
|
# m2m_model.objects.bulk_create(to_create)
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
RELATED_NODE_IDS = '_related_node_ids'
|
RELATED_NODE_IDS = '_related_node_ids'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,5 +10,5 @@ class PermsConfig(AppConfig):
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
super().ready()
|
super().ready()
|
||||||
# from . import signal_handlers
|
from . import signal_handlers
|
||||||
from . import notifications
|
from . import notifications
|
||||||
|
|
|
@ -32,6 +32,9 @@ class UserAssetGrantedTreeNodeRelation(FamilyMixin, JMSOrgBaseModel):
|
||||||
node_assets_amount = models.IntegerField(default=0)
|
node_assets_amount = models.IntegerField(default=0)
|
||||||
comment = ''
|
comment = ''
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f'{self.user}|{self.node}'
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def key(self):
|
def key(self):
|
||||||
return self.node_key
|
return self.node_key
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
from . import asset_permission
|
from .asset_permission import *
|
||||||
from . import refresh_perms
|
from .refresh_perms import *
|
||||||
|
|
|
@ -121,9 +121,8 @@ class UserPermTreeExpireUtil(_UserPermTreeCacheMixin):
|
||||||
for org_id, perm_id in org_perm_ids:
|
for org_id, perm_id in org_perm_ids:
|
||||||
org_perms_mapper[org_id].add(perm_id)
|
org_perms_mapper[org_id].add(perm_id)
|
||||||
for org_id, perms_id in org_perms_mapper.items():
|
for org_id, perms_id in org_perms_mapper.items():
|
||||||
org_ids = [org_id]
|
|
||||||
user_ids = AssetPermission.get_all_users_for_perms(perm_ids, flat=True)
|
user_ids = AssetPermission.get_all_users_for_perms(perm_ids, flat=True)
|
||||||
self.expire_perm_tree_for_users_orgs(user_ids, org_ids)
|
self.expire_perm_tree_for_users_orgs(user_ids, [org_id])
|
||||||
|
|
||||||
def expire_perm_tree_for_user_group(self, user_group):
|
def expire_perm_tree_for_user_group(self, user_group):
|
||||||
group_ids = [user_group.id]
|
group_ids = [user_group.id]
|
||||||
|
@ -138,7 +137,7 @@ class UserPermTreeExpireUtil(_UserPermTreeCacheMixin):
|
||||||
@on_transaction_commit
|
@on_transaction_commit
|
||||||
def expire_perm_tree_for_users_orgs(self, user_ids, org_ids):
|
def expire_perm_tree_for_users_orgs(self, user_ids, org_ids):
|
||||||
org_ids = [str(oid) for oid in org_ids]
|
org_ids = [str(oid) for oid in org_ids]
|
||||||
with self.client.pipline() as p:
|
with self.client.pipeline() as p:
|
||||||
for uid in user_ids:
|
for uid in user_ids:
|
||||||
cache_key = self.get_cache_key(uid)
|
cache_key = self.get_cache_key(uid)
|
||||||
p.srem(cache_key, *org_ids)
|
p.srem(cache_key, *org_ids)
|
||||||
|
@ -147,7 +146,7 @@ class UserPermTreeExpireUtil(_UserPermTreeCacheMixin):
|
||||||
|
|
||||||
def expire_perm_tree_for_all_user(self):
|
def expire_perm_tree_for_all_user(self):
|
||||||
keys = self.client.keys(self.cache_key_all_user)
|
keys = self.client.keys(self.cache_key_all_user)
|
||||||
with self.client.pipline() as p:
|
with self.client.pipeline() as p:
|
||||||
for k in keys:
|
for k in keys:
|
||||||
p.delete(k)
|
p.delete(k)
|
||||||
p.execute()
|
p.execute()
|
||||||
|
|
Loading…
Reference in New Issue