mirror of
https://github.com/veops/cmdb.git
synced 2025-08-09 12:53:11 +08:00
relation view bugfix
This commit is contained in:
@@ -9,6 +9,7 @@ from flask import session, abort
|
|||||||
from api.lib.cmdb.const import ResourceTypeEnum as CmdbResourceType
|
from api.lib.cmdb.const import ResourceTypeEnum as CmdbResourceType
|
||||||
from api.lib.cmdb.const import RoleEnum
|
from api.lib.cmdb.const import RoleEnum
|
||||||
from api.lib.perm.acl.cache import AppCache
|
from api.lib.perm.acl.cache import AppCache
|
||||||
|
from api.lib.perm.acl.cache import RoleCache
|
||||||
from api.lib.perm.acl.cache import UserCache
|
from api.lib.perm.acl.cache import UserCache
|
||||||
from api.lib.perm.acl.permission import PermissionCRUD
|
from api.lib.perm.acl.permission import PermissionCRUD
|
||||||
from api.lib.perm.acl.resource import ResourceCRUD
|
from api.lib.perm.acl.resource import ResourceCRUD
|
||||||
@@ -123,6 +124,10 @@ def is_app_admin():
|
|||||||
if RoleEnum.CONFIG in session.get("acl", {}).get("parentRoles", []):
|
if RoleEnum.CONFIG in session.get("acl", {}).get("parentRoles", []):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
for role in session.get("acl", {}).get("parentRoles", []):
|
||||||
|
if RoleCache.get(role).is_app_admin:
|
||||||
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
@@ -81,6 +81,9 @@ class RoleRelationCRUD(object):
|
|||||||
def add(parent_id, child_id):
|
def add(parent_id, child_id):
|
||||||
RoleRelation.get_by(parent_id=parent_id, child_id=child_id) and abort(400, "It's already existed")
|
RoleRelation.get_by(parent_id=parent_id, child_id=child_id) and abort(400, "It's already existed")
|
||||||
|
|
||||||
|
RoleRelationCache.clean(parent_id)
|
||||||
|
RoleRelationCache.clean(child_id)
|
||||||
|
|
||||||
return RoleRelation.create(parent_id=parent_id, child_id=child_id)
|
return RoleRelation.create(parent_id=parent_id, child_id=child_id)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -91,6 +94,9 @@ class RoleRelationCRUD(object):
|
|||||||
for child_id in child_ids:
|
for child_id in child_ids:
|
||||||
role_rebuild.apply_async(args=(child_id,), queue=ACL_QUEUE)
|
role_rebuild.apply_async(args=(child_id,), queue=ACL_QUEUE)
|
||||||
|
|
||||||
|
RoleRelationCache.clean(existed.parent_id)
|
||||||
|
RoleRelationCache.clean(existed.child_id)
|
||||||
|
|
||||||
existed.soft_delete()
|
existed.soft_delete()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -102,6 +108,9 @@ class RoleRelationCRUD(object):
|
|||||||
for child_id in child_ids:
|
for child_id in child_ids:
|
||||||
role_rebuild.apply_async(args=(child_id,), queue=ACL_QUEUE)
|
role_rebuild.apply_async(args=(child_id,), queue=ACL_QUEUE)
|
||||||
|
|
||||||
|
RoleRelationCache.clean(existed.parent_id)
|
||||||
|
RoleRelationCache.clean(existed.child_id)
|
||||||
|
|
||||||
existed.soft_delete()
|
existed.soft_delete()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -20,6 +20,7 @@ class GetUserInfoView(APIView):
|
|||||||
name = session.get("CAS_USERNAME") or current_user.nickname
|
name = session.get("CAS_USERNAME") or current_user.nickname
|
||||||
role = dict(permissions=session.get("acl", {}).get("parentRoles", []))
|
role = dict(permissions=session.get("acl", {}).get("parentRoles", []))
|
||||||
avatar = current_user.avatar
|
avatar = current_user.avatar
|
||||||
|
|
||||||
return self.jsonify(result=dict(name=name,
|
return self.jsonify(result=dict(name=name,
|
||||||
role=role,
|
role=role,
|
||||||
avatar=avatar))
|
avatar=avatar))
|
||||||
|
Reference in New Issue
Block a user