From a4f4828f0750aca309c8b00ef895881bc771ad06 Mon Sep 17 00:00:00 2001 From: Ryunosuke O'Neil Date: Mon, 8 Dec 2025 15:20:04 +0100 Subject: [PATCH 1/2] fix(CSAPI): return AffiliationEnds from describeUsers --- src/DIRAC/ConfigurationSystem/Client/CSAPI.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/DIRAC/ConfigurationSystem/Client/CSAPI.py b/src/DIRAC/ConfigurationSystem/Client/CSAPI.py index 94c8a85183e..6de8173ced3 100644 --- a/src/DIRAC/ConfigurationSystem/Client/CSAPI.py +++ b/src/DIRAC/ConfigurationSystem/Client/CSAPI.py @@ -299,8 +299,21 @@ def __describeEntity(self, mask, hosts=False): if "Users" in groupsDict[group] and entity in groupsDict[group]["Users"]: entitiesDict[entity]["Groups"].append(group) entitiesDict[entity]["Groups"].sort() + entitiesDict[entity]["AffiliationEnds"] = self.getUserAffiliationEnds(entity) return S_OK(entitiesDict) + def getUserAffiliationEnds(self, nick): + affiliation_ends_current = {} + csSection = f"{self.__baseSecurity}/Users/{nick}/" + user_sections = self.__csMod.getSections(csSection) + if "AffiliationEnds" in user_sections: + affiliation_ends_opts = self.__csMod.getOptions(f"{csSection}/AffiliationEnds") + for vo_ in affiliation_ends_opts: + affiliation_ends_current[vo_] = self.__csMod.getValue( + f"{csSection}/AffiliationEnds/{vo_}" + ) + return affiliation_ends_current + def listGroups(self): """ List all groups From 4997855c097d607c36e4769423e68976966ac12d Mon Sep 17 00:00:00 2001 From: Ryunosuke O'Neil Date: Mon, 8 Dec 2025 15:34:29 +0100 Subject: [PATCH 2/2] fix(CSAPI): formatting --- src/DIRAC/ConfigurationSystem/Client/CSAPI.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/DIRAC/ConfigurationSystem/Client/CSAPI.py b/src/DIRAC/ConfigurationSystem/Client/CSAPI.py index 6de8173ced3..14806e1c0cf 100644 --- a/src/DIRAC/ConfigurationSystem/Client/CSAPI.py +++ b/src/DIRAC/ConfigurationSystem/Client/CSAPI.py @@ -309,9 +309,7 @@ def getUserAffiliationEnds(self, nick): if "AffiliationEnds" in user_sections: affiliation_ends_opts = self.__csMod.getOptions(f"{csSection}/AffiliationEnds") for vo_ in affiliation_ends_opts: - affiliation_ends_current[vo_] = self.__csMod.getValue( - f"{csSection}/AffiliationEnds/{vo_}" - ) + affiliation_ends_current[vo_] = self.__csMod.getValue(f"{csSection}/AffiliationEnds/{vo_}") return affiliation_ends_current def listGroups(self):