From 57201f2860e0cda1f4b9ae116f9c8567b3c43399 Mon Sep 17 00:00:00 2001 From: owen Date: Wed, 16 Sep 2026 10:07:57 +0800 Subject: [PATCH] ow --- .../FamilyTreePermissionHelper.cs | 15 +- .../master/AncestryTreeChartModal.vue | 297 ++++++++++++++++-- .../master/FamilyTreeChartModal.vue | 196 +++++++++++- 3 files changed, 472 insertions(+), 36 deletions(-) diff --git a/CloudBuilder/CloudBuilder.Master.Service/FamilyTreeUtility/FamilyTreePermissionHelper.cs b/CloudBuilder/CloudBuilder.Master.Service/FamilyTreeUtility/FamilyTreePermissionHelper.cs index 00bd5d2..3e6339e 100644 --- a/CloudBuilder/CloudBuilder.Master.Service/FamilyTreeUtility/FamilyTreePermissionHelper.cs +++ b/CloudBuilder/CloudBuilder.Master.Service/FamilyTreeUtility/FamilyTreePermissionHelper.cs @@ -22,14 +22,17 @@ namespace CloudBuilder.Master.Service.FamilyTreeUtility public bool HasPermission(string treeId, string personId) { - return GetPersonId(treeId).Where(x => x == personId).Any(); - } - - public List GetPersonId(string treeId) - { - List ps = new List(); IRepository repositoryPermission = service.GetRepository>(); FamilyTreePermissionEntity[] permissions = repositoryPermission.DetachedEntities.Where(x => x.TreeId == treeId && x.UserName == service.UserId && x.ValidIndc == YesNoPolicy.YES).ToArray(); + if (permissions != null && permissions.Where(x => x.ManagerIndc == YesNoPolicy.YES).Any()) return true; + + return GetPersonId(permissions, treeId).Where(x => x == personId).Any(); + } + + public List GetPersonId(FamilyTreePermissionEntity[] permissions, string treeId) + { + List ps = new List(); + if (permissions == null || permissions.Length == 0) return ps; IRepository repositoryChildrenMap = service.GetRepository>(); diff --git a/WebVue/src/components/master/AncestryTreeChartModal.vue b/WebVue/src/components/master/AncestryTreeChartModal.vue index 5357386..edb1419 100644 --- a/WebVue/src/components/master/AncestryTreeChartModal.vue +++ b/WebVue/src/components/master/AncestryTreeChartModal.vue @@ -8,9 +8,10 @@ + - +