From bdf97f570d3e88895cdae8887208fabda1981438 Mon Sep 17 00:00:00 2001 From: ElenaRepository <50620495+ElenaRepository@users.noreply.github.com> Date: Thu, 18 Jul 2019 21:17:04 +0200 Subject: [PATCH] Add user event handler disabled (#8246) --- .../Providers/Users/UserEventHandler.cs | 3 +++ .../Modules/Orchard.Users/Activities/UserActivity.cs | 11 +++++++++++ .../Orchard.Users/Controllers/AdminController.cs | 1 + .../Modules/Orchard.Users/Events/IUserEventHandler.cs | 5 +++++ .../Orchard.Users/Events/LoginUserEventHandler.cs | 2 ++ .../Handlers/WorkflowUserEventHandler.cs | 6 ++++++ 6 files changed, 28 insertions(+) diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserEventHandler.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserEventHandler.cs index 61e6d1b95..49ebd53e3 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserEventHandler.cs @@ -69,5 +69,8 @@ namespace Orchard.AuditTrail.Providers.Users { public void Approved(IUser user) { } + + public void Moderate(IUser user) { + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs b/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs index 01ff766ad..cf60efcfa 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs @@ -153,4 +153,15 @@ namespace Orchard.Users.Activities { get { return T("User is approved."); } } } + + [OrchardFeature("Orchard.Users.Workflows")] + public class UserDisabledActivity : UserActivity { + public override string Name { + get { return "UserDisabled"; } + } + + public override LocalizedString Description { + get { return T("User is Disabled."); } + } + } } diff --git a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AdminController.cs index 9078d67bd..c262f35d0 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AdminController.cs @@ -366,6 +366,7 @@ namespace Orchard.Users.Controllers { else { user.As().RegistrationStatus = UserStatus.Pending; Services.Notifier.Success(T("User {0} disabled", user.UserName)); + _userEventHandlers.Moderate(user); } return RedirectToAction("Index"); diff --git a/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs index b1afb94f9..18c694bd6 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs @@ -57,6 +57,11 @@ namespace Orchard.Users.Events { /// Called after a user has been approved /// void Approved(IUser user); + + /// + /// Called after a user has been disabled + /// + void Moderate(IUser user); } } diff --git a/src/Orchard.Web/Modules/Orchard.Users/Events/LoginUserEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Users/Events/LoginUserEventHandler.cs index 4893f0fdf..01a5ff061 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Events/LoginUserEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Events/LoginUserEventHandler.cs @@ -37,6 +37,8 @@ namespace Orchard.Users.Events { public void Approved(IUser user) { } + public void Moderate(IUser user) { } + public void LoggingIn(string userNameOrEmail, string password) { } public void LogInFailed(string userNameOrEmail, string password) { } diff --git a/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs index 2daf6b854..8b7726a32 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs @@ -83,5 +83,11 @@ namespace Orchard.Users.Handlers { user, () => new Dictionary {{"User", user}}); } + + public void Moderate(Security.IUser user) { + _workflowManager.TriggerEvent("UserDisabled", + user, + () => new Dictionary { { "User", user } }); + } } }