From 6c4b8308661232ef86514476df8ab35d69c33ab5 Mon Sep 17 00:00:00 2001 From: Nicholas Mayne Date: Sat, 17 May 2014 09:46:12 +0100 Subject: [PATCH] Adding a LoggingIn method to IUserEventHandler --- .../Modules/Orchard.Users/Activities/UserActivity.cs | 11 +++++++++++ .../Orchard.Users/Controllers/AccountController.cs | 2 ++ .../Modules/Orchard.Users/Events/IUserEventHandler.cs | 5 +++++ .../Handlers/WorkflowUserEventHandler.cs | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs b/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs index 8243ebe1f..731bfd349 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Activities/UserActivity.cs @@ -51,6 +51,17 @@ namespace Orchard.Users.Activities { } } + [OrchardFeature("Orchard.Users.Workflows")] + public class UserLoggingInActivity : UserActivity { + public override string Name { + get { return "UserLoggingIn"; } + } + + public override LocalizedString Description { + get { return T("User is logging in."); } + } + } + [OrchardFeature("Orchard.Users.Workflows")] public class UserLoggedInActivity : UserActivity { public override string Name { diff --git a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs index d75d42e3b..1dc2dc554 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs @@ -78,6 +78,8 @@ namespace Orchard.Users.Controllers { [SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Justification = "Needs to take same parameter type as Controller.Redirect()")] public ActionResult LogOn(string userNameOrEmail, string password, string returnUrl, bool rememberMe = false) { + _userEventHandler.LoggingIn(userNameOrEmail, password); + var user = ValidateLogOn(userNameOrEmail, password); if (!ModelState.IsValid) { var shape = _orchardServices.New.LogOn().Title(T("Log On").Text); diff --git a/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs index 6823c332e..880d8878a 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Events/IUserEventHandler.cs @@ -13,6 +13,11 @@ namespace Orchard.Users.Events { /// void Created(UserContext context); + /// + /// Called before a user has logged in + /// + void LoggingIn(string userNameOrEmail, string password); + /// /// Called after a user has logged in /// diff --git a/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs index 99b16931b..9df2fe061 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Handlers/WorkflowUserEventHandler.cs @@ -24,6 +24,12 @@ namespace Orchard.Users.Handlers { () => new Dictionary {{"User", context}}); } + public void LoggingIn(string userNameOrEmail, string password) { + _workflowManager.TriggerEvent("UserLoggingIn", + null, + () => new Dictionary{{"UserNameOrEmail", userNameOrEmail}, {"Password", password}}); + } + public void LoggedIn(Security.IUser user) { _workflowManager.TriggerEvent("UserLoggedIn", user,