From 68195656a45f5203609699b28e884fa440aa1a6f Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:07:17 +0000 Subject: [PATCH] Update Function ES_V2_REMOVE_MAPICS_USER_FROM_ROLE --- .../ES_V2_REMOVE_MAPICS_USER_FROM_ROLE.sql | 75 ++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/SAILPOINT/Functions/ES_V2_REMOVE_MAPICS_USER_FROM_ROLE.sql b/SAILPOINT/Functions/ES_V2_REMOVE_MAPICS_USER_FROM_ROLE.sql index b02e44e..f9acc18 100644 --- a/SAILPOINT/Functions/ES_V2_REMOVE_MAPICS_USER_FROM_ROLE.sql +++ b/SAILPOINT/Functions/ES_V2_REMOVE_MAPICS_USER_FROM_ROLE.sql @@ -1 +1,74 @@ -@@\@^@ % %@@@@Kmmmmmm@M@ %@M]@k@ %@M]@k@ %@M]@]@ %@M]@@@ %@@ %@Km@ %@@ %@@@ %@@@@ %@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@@@M@@]@@}}@^@ %@m@@M@@]@@}}@^@ %@@K@@~@@K@mm@M@@]@^@ %@m@~@m@^@ %@@@ %@@M@ %@K@m@M@ %m@M@ %@M@@@@M@@]@@@]@k@ %}OOOOOkON}@k@}k}@]@k@}k}@]@ %]@ %@@Ln@}}@ %@@@@@ %@ %@@K@mmmm@M@@k@@k@ %@]@^@ %@@^@ %@ %M@ %@m@M@ %}}@z@ %m@M@ %m@M@ %}Ʉ}@@@M@ %@M@@@@M@@]@@@]@]@k@ %}}@@@@@ %]@@@ %]@k@ %}}@z@m@M@]@ %]@ %@@M@ %@@k@ %m@M@@M@ %@M@@@@M@@]@@@]@]@@ %@M@@M@@@@M@@]@@@]@]@ %@@]@@@ %@@ %@@ %@M@@]@ %@@~@@ %@@@ %]@]@^@ %@@^@ % %@@k@@@@ %@@@Km@ %@@@@@^@ % %@@@@ %@@@Km@ %@@^@ % % \ No newline at end of file +SET PATH *LIBL ; + +CREATE OR REPLACE FUNCTION SAILPOINT.ES_V2_REMOVE_MAPICS_USER_FROM_ROLE ( + ENVID CHAR(2) , + USERNAME CHAR(10) , + USERROLES VARCHAR(1000) ) + RETURNS CLOB(2147483647) + LANGUAGE SQL + SPECIFIC SAILPOINT.V2_ESDELMUSRR + NOT DETERMINISTIC + MODIFIES SQL DATA + CALLED ON NULL INPUT + NOT FENCED + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DECRESULT = (31, 31, 00) , + DLYPRP = *NO , + DYNDFTCOL = *NO , + DYNUSRPRF = *USER , + SRTSEQ = *HEX + BEGIN +DECLARE LIBL VARCHAR ( 1024 ) DEFAULT '' ; +DECLARE CUR_USR VARCHAR ( 10 ) DEFAULT '' ; +SET CISTOOLS . LIBL = CISTOOLS . SET_LIBRARY_LIST ( ENVID ) ; +SET CUR_USR = CURRENT_USER ; +FOR SELECT FRAGMENT +FROM TABLE ( +CISTOOLS . SPLIT_STRING ( +REGEXP_REPLACE ( +CAST ( USERROLES AS VARCHAR ( 1000 ) CCSID 37 ) , +'[\[|\]|\{|\}|\""|\,|\s+]' , ',' ) , ',' ) +) +WHERE FRAGMENT <> '' +AND FRAGMENT IS NOT NULL +DO +CALL SAILPOINT . REMOVE_ES_USER_FROM_ROLE ( ENVID , USERNAME , +FRAGMENT ) ; +END FOR ; +RETURN +( +SELECT JSON_OBJECT ( +'data' : +JSON_ARRAYAGG ( +JSON_OBJECT ( +'userId' VALUE RTRIM ( +CAST ( EUUSER AS VARCHAR ( 10 ) CCSID 37 ) ) , +'roles' VALUE ROLESJSON FORMAT JSON +) FORMAT JSON +) , +'errors' : JSON_ARRAY ( ) +) +FROM TABLE ( +SELECT EUUSER , +JSON_OBJECTAGG ( RTRIM ( +CAST ( EUROLE AS VARCHAR ( 10 ) CCSID 37 ) ) VALUE +RTRIM ( CAST ( EUDESC AS VARCHAR ( 50 ) CCSID 37 ) ) +FORMAT JSON ) AS ROLESJSON +FROM ESUSRP +JOIN ESROLP +USING ( EUROLE ) +WHERE EUUSER = USERNAME +GROUP BY EUUSER +) ) ; +END ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION SAILPOINT.V2_ESDELMUSRR +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION SAILPOINT.V2_ESDELMUSRR +TO PUBLIC ; +