From 30e691b29d283c965899bd7eefab78b9c5399958 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 26 May 2013 12:15:50 +0200 Subject: [PATCH] #19746: Simplifying user event handlers invocation by taking advantage of the fact that IUSerEventHandler is an IEventHandler. Work Item: 19746 --HG-- branch : 1.x extra : amend_source : 952053304943e1382c6199f86f98743bd8b7c188 --- .../Controllers/AccountController.cs | 37 +++++-------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs index 0c511cd9b..1d6e724bd 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs @@ -1,10 +1,8 @@ using System; using System.Text.RegularExpressions; using System.Diagnostics.CodeAnalysis; -using System.Web; using Orchard.Core.Settings.Models; using Orchard.Localization; -using System.Security.Principal; using System.Web.Mvc; using System.Web.Security; using Orchard.Logging; @@ -17,7 +15,6 @@ using Orchard.ContentManagement; using Orchard.Users.Models; using Orchard.UI.Notify; using Orchard.Users.Events; -using System.Collections.Generic; using Orchard.Utility.Extensions; namespace Orchard.Users.Controllers { @@ -27,19 +24,19 @@ namespace Orchard.Users.Controllers { private readonly IMembershipService _membershipService; private readonly IUserService _userService; private readonly IOrchardServices _orchardServices; - private readonly IEnumerable _userEventHandlers; + private readonly IUserEventHandler _userEventHandler; public AccountController( IAuthenticationService authenticationService, IMembershipService membershipService, IUserService userService, IOrchardServices orchardServices, - IEnumerable userEventHandlers) { + IUserEventHandler userEventHandler) { _authenticationService = authenticationService; _membershipService = membershipService; _userService = userService; _orchardServices = orchardServices; - _userEventHandlers = userEventHandlers; + _userEventHandler = userEventHandler; Logger = NullLogger.Instance; T = NullLocalizer.Instance; } @@ -62,9 +59,7 @@ namespace Orchard.Users.Controllers { //Suggestion: Could instead use the new AccessDenined IUserEventHandler method and let modules decide if they want to log this event? Logger.Information("Access denied to user #{0} '{1}' on {2}", currentUser.Id, currentUser.UserName, returnUrl); - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.AccessDenied(currentUser); - } + _userEventHandler.AccessDenied(currentUser); return View(); } @@ -90,9 +85,7 @@ namespace Orchard.Users.Controllers { } _authenticationService.SignIn(user, rememberMe); - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.LoggedIn(user); - } + _userEventHandler.LoggedIn(user); return this.RedirectLocal(returnUrl); } @@ -101,9 +94,7 @@ namespace Orchard.Users.Controllers { var wasLoggedInUser = _authenticationService.GetAuthenticatedUser(); _authenticationService.SignOut(); if (wasLoggedInUser != null) - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.LoggedOut(wasLoggedInUser); - } + _userEventHandler.LoggedOut(wasLoggedInUser); return this.RedirectLocal(returnUrl); } @@ -152,9 +143,7 @@ namespace Orchard.Users.Controllers { _userService.SendChallengeEmail(user.As(), nonce => Url.MakeAbsolute(Url.Action("ChallengeEmail", "Account", new {Area = "Orchard.Users", nonce = nonce}), siteUrl)); - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.SentChallengeEmail(user); - } + _userEventHandler.SentChallengeEmail(user); return RedirectToAction("ChallengeEmailSent"); } @@ -236,9 +225,7 @@ namespace Orchard.Users.Controllers { if ( validated != null ) { _membershipService.SetPassword(validated, newPassword); - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.ChangedPassword(validated); - } + _userEventHandler.ChangedPassword(validated); return RedirectToAction("ChangePasswordSuccess"); } @@ -284,9 +271,7 @@ namespace Orchard.Users.Controllers { _membershipService.SetPassword(user, newPassword); - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.ChangedPassword(user); - } + _userEventHandler.ChangedPassword(user); return RedirectToAction("ChangePasswordSuccess"); } @@ -315,9 +300,7 @@ namespace Orchard.Users.Controllers { var user = _userService.ValidateChallenge(nonce); if ( user != null ) { - foreach (var userEventHandler in _userEventHandlers) { - userEventHandler.ConfirmedEmail(user); - } + _userEventHandler.ConfirmedEmail(user); return RedirectToAction("ChallengeEmailSuccess"); }