From 7f100c9767b402df5a2fbf02c5b3ee89f69bc047 Mon Sep 17 00:00:00 2001 From: chaytarak <62869669+chaytarak@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:56:41 +0530 Subject: [PATCH 1/2] Create ReadMe.md --- .../ReadMe.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/ReadMe.md diff --git a/Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/ReadMe.md b/Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/ReadMe.md new file mode 100644 index 0000000000..e680174380 --- /dev/null +++ b/Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/ReadMe.md @@ -0,0 +1,5 @@ +When the Manager field changes on the Group table (sys_user_group), the system should automatically: + +Remove the previous manager from the group’s membership. + +Add the new manager as a member of the same group. From f56aa5e961ba9ad49ef036116f199dafd5379793 Mon Sep 17 00:00:00 2001 From: chaytarak <62869669+chaytarak@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:59:00 +0530 Subject: [PATCH 2/2] Create Code.js --- .../Code.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/Code.js diff --git a/Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/Code.js b/Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/Code.js new file mode 100644 index 0000000000..f6b91c5108 --- /dev/null +++ b/Server-Side Components/Business Rules/Group Manager changes, remove old manager & add new manager/Code.js @@ -0,0 +1,29 @@ +(function executeRule(current, previous /*null when async*/) { + + // Run only when the Manager field changes + if (current.manager.changes()) { + + var groupID = current.sys_id.toString(); + + // Remove old manager from group membership + if (!gs.nil(previous.manager)) { + var oldMember = new GlideRecord('sys_user_grmember'); + oldMember.addQuery('group', groupID); + oldMember.addQuery('user', previous.manager); + oldMember.query(); + while (oldMember.next()) { + oldMember.deleteRecord(); + } + } + + // Add new manager to group membership + if (!gs.nil(current.manager)) { + var newMember = new GlideRecord('sys_user_grmember'); + newMember.initialize(); + newMember.group = groupID; + newMember.user = current.manager; + newMember.insert(); + } + } + +})(current, previous);