From 8d35a3dd7badb8a97d6a80931ac105213dbab74d Mon Sep 17 00:00:00 2001 From: Florian Dupret <34862846+sephrat@users.noreply.github.com> Date: Mon, 10 Jan 2022 12:44:28 +0100 Subject: [PATCH] Send new request email notifications to power users --- .../Agents/EmailNotification.cs | 16 +++++++++++++++- .../Notifications/EmailNotificationSettings.cs | 1 + .../src/app/interfaces/INotificationSettings.ts | 1 + .../emailnotification.component.html | 6 +++++- .../notifications/emailnotification.component.ts | 1 + 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/Ombi.Notifications/Agents/EmailNotification.cs b/src/Ombi.Notifications/Agents/EmailNotification.cs index f41406d0e..71728ac15 100644 --- a/src/Ombi.Notifications/Agents/EmailNotification.cs +++ b/src/Ombi.Notifications/Agents/EmailNotification.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using MailKit.Net.Smtp; @@ -114,7 +115,20 @@ namespace Ombi.Notifications.Agents var plaintext = await LoadPlainTextMessage(NotificationType.NewRequest, model, settings); message.Other.Add("PlainTextBody", plaintext); - await Send(message, settings); + IEnumerable recipients = await _userManager.GetUsersInRoleAsync(OmbiRoles.Admin); + if (settings.SendNewRequestToPowerUsers) + { + recipients = recipients.Concat(await _userManager.GetUsersInRoleAsync(OmbiRoles.PowerUser)); + } + foreach (var recipient in recipients.DistinctBy(x => x.Email)) + { + if (recipient.Email.IsNullOrEmpty()) + { + continue; + } + message.To = recipient.Email; + await Send(message, settings); + } } protected override async Task NewIssue(NotificationOptions model, EmailNotificationSettings settings) diff --git a/src/Ombi.Settings/Settings/Models/Notifications/EmailNotificationSettings.cs b/src/Ombi.Settings/Settings/Models/Notifications/EmailNotificationSettings.cs index 9ea8cc492..c0a884439 100644 --- a/src/Ombi.Settings/Settings/Models/Notifications/EmailNotificationSettings.cs +++ b/src/Ombi.Settings/Settings/Models/Notifications/EmailNotificationSettings.cs @@ -13,5 +13,6 @@ public string AdminEmail { get; set; } public bool DisableTLS { get; set; } public bool DisableCertificateChecking { get; set; } + public bool SendNewRequestToPowerUsers{ get; set; } } } \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/interfaces/INotificationSettings.ts b/src/Ombi/ClientApp/src/app/interfaces/INotificationSettings.ts index f2efc3f6f..f244690aa 100644 --- a/src/Ombi/ClientApp/src/app/interfaces/INotificationSettings.ts +++ b/src/Ombi/ClientApp/src/app/interfaces/INotificationSettings.ts @@ -15,6 +15,7 @@ export interface IEmailNotificationSettings extends INotificationSettings { adminEmail: string; disableTLS: boolean; disableCertificateChecking: boolean; + sendNewRequestToPowerUsers: boolean; notificationTemplates: INotificationTemplates[]; } diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.html index 33aa3a06c..2cc4344f0 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.html @@ -21,6 +21,10 @@ Disable Certificate Checking +
+ Send New Request + To Power Users +
@@ -61,7 +65,7 @@
Admin Email - + Admin Email is required diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.ts b/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.ts index f880891a5..5d799609a 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.ts +++ b/src/Ombi/ClientApp/src/app/settings/notifications/emailnotification.component.ts @@ -38,6 +38,7 @@ export class EmailNotificationComponent implements OnInit { adminEmail: [x.adminEmail, [Validators.required, Validators.email]], disableTLS: [x.disableTLS], disableCertificateChecking: [x.disableCertificateChecking], + sendNewRequestToPowerUsers: [x.sendNewRequestToPowerUsers], }); if (x.authentication) {