diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj
index 7d5dcc0fd5..34f736f964 100644
--- a/src/Umbraco.Tests/Umbraco.Tests.csproj
+++ b/src/Umbraco.Tests/Umbraco.Tests.csproj
@@ -76,6 +76,9 @@
..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll
+
+ ..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll
+
..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll
diff --git a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs
index 32a04350ee..eaeb2c49d1 100644
--- a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs
+++ b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs
@@ -2,17 +2,21 @@
using System.Linq;
using System.Net.Http;
using System.Net.Http.Formatting;
+using Microsoft.AspNet.Identity;
using Moq;
using Newtonsoft.Json;
using NUnit.Framework;
using Umbraco.Core.Models;
+using Umbraco.Core.Models.Identity;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
+using Umbraco.Core.Security;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.ControllerTesting;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Web.Editors;
using Umbraco.Web.Models.ContentEditing;
+using IUser = Umbraco.Core.Models.Membership.IUser;
namespace Umbraco.Tests.Web.Controllers
{
@@ -41,7 +45,7 @@ namespace Umbraco.Tests.Web.Controllers
userServiceMock.Setup(service => service.GetUserGroupsByAlias(It.IsAny()))
.Returns(new[] { Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers") });
userServiceMock.Setup(service => service.GetUserById(It.IsAny()))
- .Returns(new User(1234, "Test", "asdf@asdf.com", "test", "", new List(), new int[0], new int[0]));
+ .Returns(new User(1234, "Test", "asdf@asdf.com", "test", "", new List(), new int[0], new int[0]));
//we need to manually apply automapper mappings with the mocked applicationcontext
InitializeMappers(helper.UmbracoContext.Application);
@@ -91,12 +95,18 @@ namespace Umbraco.Tests.Web.Controllers
userServiceMock.Setup(service => service.GetAllUserGroups(It.IsAny()))
.Returns(new[] { Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers") });
userServiceMock.Setup(service => service.GetUserGroupsByAlias(It.IsAny()))
- .Returns(new[]{Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers")});
+ .Returns(new[] { Mock.Of(group => group.Id == 123 && group.Alias == "writers" && group.Name == "Writers") });
//we need to manually apply automapper mappings with the mocked applicationcontext
InitializeMappers(helper.UmbracoContext.Application);
- return new UsersController(helper.UmbracoContext);
+ var emailService = new Mock();
+ emailService.Setup(service => service.SendAsync(It.IsAny())).Returns(System.Threading.Tasks.Task.FromResult(0));
+ var backofficeUserMgr = new BackOfficeUserManager(Mock.Of>())
+ {
+ EmailService = emailService.Object
+ };
+ return new UsersController(helper.UmbracoContext, helper, backofficeUserMgr);
});
var invite = new UserInvite
@@ -105,7 +115,7 @@ namespace Umbraco.Tests.Web.Controllers
Email = "test@test.com",
Message = "Hello test!",
Name = "Test",
- UserGroups = new[] {"writers"}
+ UserGroups = new[] { "writers" }
};
var response = await runner.Execute("Users", action, HttpMethod.Post,
new ObjectContent(invite, new JsonMediaTypeFormatter()));
diff --git a/src/Umbraco.Tests/packages.config b/src/Umbraco.Tests/packages.config
index 1577212ffe..c010dcb45c 100644
--- a/src/Umbraco.Tests/packages.config
+++ b/src/Umbraco.Tests/packages.config
@@ -6,6 +6,7 @@
+
diff --git a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs
index 16001057be..8c0f793d03 100644
--- a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs
+++ b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs
@@ -1,4 +1,6 @@
using System.Web.Http.Controllers;
+using Umbraco.Core.Models.Identity;
+using Umbraco.Core.Security;
using Umbraco.Web.WebApi;
using Umbraco.Web.WebApi.Filters;
@@ -23,5 +25,8 @@ namespace Umbraco.Web.Editors
{
}
+ protected UmbracoAuthorizedJsonController(UmbracoContext umbracoContext, UmbracoHelper umbracoHelper, BackOfficeUserManager backOfficeUserManager) : base(umbracoContext, umbracoHelper, backOfficeUserManager)
+ {
+ }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Web/Editors/UsersController.cs b/src/Umbraco.Web/Editors/UsersController.cs
index f67c43204a..98f476d7c3 100644
--- a/src/Umbraco.Web/Editors/UsersController.cs
+++ b/src/Umbraco.Web/Editors/UsersController.cs
@@ -51,7 +51,10 @@ namespace Umbraco.Web.Editors
{
}
-
+ public UsersController(UmbracoContext umbracoContext, UmbracoHelper umbracoHelper, BackOfficeUserManager backOfficeUserManager) : base(umbracoContext, umbracoHelper, backOfficeUserManager)
+ {
+ }
+
///
/// Returns a list of the sizes of gravatar urls for the user or null if the gravatar server cannot be reached
@@ -263,21 +266,13 @@ namespace Umbraco.Web.Editors
var link = string.Format("{0}#/login/false?invite={1}",
ApplicationContext.UmbracoApplicationUrl,
user.SecurityStamp.ToUrlBase64());
-
- try
+
+ await UserManager.EmailService.SendAsync(new IdentityMessage
{
- await UserManager.EmailService.SendAsync(new IdentityMessage
- {
- Body = string.Format("You have been invited to the Umbraco Back Office!\n\n{0}\n\nClick this link to accept the invite\n\n{1}", userSave.Message, link),
- Destination = userSave.Email,
- Subject = "You have been invited to the Umbraco Back Office!"
- });
- }
- catch (Exception ex)
- {
- throw new HttpResponseException(
- Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
- }
+ Body = string.Format("You have been invited to the Umbraco Back Office!\n\n{0}\n\nClick this link to accept the invite\n\n{1}", userSave.Message, link),
+ Destination = userSave.Email,
+ Subject = "You have been invited to the Umbraco Back Office!"
+ });
//Email was successful, so save the user now
diff --git a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
index 8328cfa393..06e0051a1f 100644
--- a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
@@ -24,6 +24,8 @@ namespace Umbraco.Web.WebApi
[UmbracoWebApiRequireHttps]
public abstract class UmbracoAuthorizedApiController : UmbracoApiController
{
+
+
protected UmbracoAuthorizedApiController()
{
}
@@ -36,6 +38,11 @@ namespace Umbraco.Web.WebApi
{
}
+ protected UmbracoAuthorizedApiController(UmbracoContext umbracoContext, UmbracoHelper umbracoHelper, BackOfficeUserManager backOfficeUserManager) : base(umbracoContext, umbracoHelper)
+ {
+ _userManager = backOfficeUserManager;
+ }
+
private BackOfficeUserManager _userManager;
protected BackOfficeUserManager UserManager
{