From c43b0dd94213fab3b894f3ab07e01cfb7e17680f Mon Sep 17 00:00:00 2001 From: Can Bulut Bayburt <1103552+cbbayburt@users.noreply.github.com> Date: Fri, 29 Sep 2023 14:29:54 +0200 Subject: [PATCH] Respect user email preferences when sending 'user creation' emails (bsc#1214553) (#22550) (cherry picked from commit 4c1e77616913acd8c301a92a72acdd108e61477b) --- .../redhat/rhn/frontend/events/NewUserAction.java | 14 +++++--------- .../redhat/rhn/frontend/events/NewUserEvent.java | 6 +++--- .../redhat/rhn/manager/user/CreateUserCommand.java | 2 +- java/spacewalk-java.changes.cbbayburt.bsc1214553 | 1 + 4 files changed, 10 insertions(+), 13 deletions(-) create mode 100644 java/spacewalk-java.changes.cbbayburt.bsc1214553 diff --git a/java/code/src/com/redhat/rhn/frontend/events/NewUserAction.java b/java/code/src/com/redhat/rhn/frontend/events/NewUserAction.java index 0da7b79453d8..661bc2031488 100644 --- a/java/code/src/com/redhat/rhn/frontend/events/NewUserAction.java +++ b/java/code/src/com/redhat/rhn/frontend/events/NewUserAction.java @@ -28,7 +28,6 @@ import org.apache.logging.log4j.Logger; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -94,14 +93,11 @@ public void execute(EventMessage msg) { private String[] getEmails(NewUserEvent evt) { - List adminList = evt.getAdmins(); - String[] adminEmails = new String[adminList.size()]; - int index = 0; - for (Object oIn : adminList) { - adminEmails[index] = ((User) oIn).getEmail(); - index++; - } - return adminEmails; + return evt.getAdmins().stream() + .filter(u -> !u.isDisabled()) + .filter(u -> u.getEmailNotify() == 1) + .map(User::getEmail) + .toArray(String[]::new); } diff --git a/java/code/src/com/redhat/rhn/frontend/events/NewUserEvent.java b/java/code/src/com/redhat/rhn/frontend/events/NewUserEvent.java index 61df67606c4b..98af43dd1ebf 100644 --- a/java/code/src/com/redhat/rhn/frontend/events/NewUserEvent.java +++ b/java/code/src/com/redhat/rhn/frontend/events/NewUserEvent.java @@ -33,7 +33,7 @@ public class NewUserEvent extends BaseEvent implements EventMessage { private User accountCreator; private String link; private String domain; - private List adminList; + private List adminList; /** * format this message as a string @@ -142,13 +142,13 @@ public void setLink(String passwordIn) { /** * @return Returns the link. */ - public List getAdmins() { + public List getAdmins() { return adminList; } /** * @param admins Admins to set. */ - public void setAdmins(List admins) { + public void setAdmins(List admins) { this.adminList = admins; } diff --git a/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java b/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java index 9007566e764c..06176834dc21 100644 --- a/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java +++ b/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java @@ -102,7 +102,7 @@ public ValidatorError[] validate() { * might be encrypted, thus useless for this method */ public void publishNewUserEvent(User accountCreator, - List admins, + List admins, String domain, String password) { NewUserEvent userevt = new NewUserEvent(); diff --git a/java/spacewalk-java.changes.cbbayburt.bsc1214553 b/java/spacewalk-java.changes.cbbayburt.bsc1214553 new file mode 100644 index 000000000000..a1b9293f2fe5 --- /dev/null +++ b/java/spacewalk-java.changes.cbbayburt.bsc1214553 @@ -0,0 +1 @@ +- Respect user email preferences when sending 'user creation' emails (bsc#1214553)