From 9953efd9622d35a834336fedd11dd8fcfab0f18f Mon Sep 17 00:00:00 2001 From: John Date: Thu, 8 Oct 2020 19:39:41 +0000 Subject: [PATCH] =?UTF-8?q?B2020-111=20Limit=20where=20the=20Set=20Amin=20?= =?UTF-8?q?can=20create=20new=20folders=20B2020-114=20Fixed=20crash=20when?= =?UTF-8?q?=20Set=20Admin=20clicked=20on=20Admin=20Tools=20Links=20button?= =?UTF-8?q?=20C2020-035=20Don=E2=80=99t=20allow=20Set=20Admin=20run=20Repa?= =?UTF-8?q?ir=20tools=20and=20show=20only=20folders=20associated=20with=20?= =?UTF-8?q?Set=20Admin=20for=20the=20update=20Transition=20and=20RO=20link?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs index f8c5a110..3b8beae9 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs @@ -1089,7 +1089,7 @@ namespace VEPROMS.CSLA.Library } public static bool CanCreateFolders(UserInfo myUserInfo, FolderInfo fi) { - return myUserInfo != null && fi != null && myUserInfo.IsAdministrator() || myUserInfo.IsSetAdministrator(fi); + return myUserInfo != null && fi != null && myUserInfo.IsAdministrator() || myUserInfo.IsSetAdministrator(fi.MyParent); //B2020-111 allow if set amin controls parent } public bool IsAdministrator() { @@ -1108,9 +1108,12 @@ namespace VEPROMS.CSLA.Library } return false; } - public bool IsSetAdministrator(FolderInfo fi) + //B2020-111, B2020-114, C2020-035 this was setting the passed in parameter, such that the first time this + // was called, the passed in parameter was set to the top node (VEPROMS). The check of other folders + // would then be skipped (from where is called) + public bool IsSetAdministrator(FolderInfo fldinf) { - if (this.UserMembershipCount == 0) + if (this.UserMembershipCount == 0 || fldinf == null) return false; foreach (MembershipInfo mi in this.UserMemberships) { @@ -1118,6 +1121,7 @@ namespace VEPROMS.CSLA.Library { Dictionary folders = new Dictionary(); //FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); + FolderInfo fi = fldinf; while (fi.FolderID > 1) { folders.Add(fi.FolderID, fi.FolderID);