starting to get the invite email with token working

This commit is contained in:
Shannon
2017-05-29 09:36:07 +02:00
parent f493c254e8
commit 7f27745d27
3 changed files with 27 additions and 4 deletions
+15 -1
View File
@@ -9,18 +9,22 @@ using System.Web;
using System.Web.Http;
using AutoMapper;
using ClientDependency.Core;
using Microsoft.AspNet.Identity;
using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
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.Core.Services;
using Umbraco.Web.Models.ContentEditing;
using Umbraco.Web.Mvc;
using Umbraco.Web.WebApi;
using Umbraco.Web.WebApi.Filters;
using Constants = Umbraco.Core.Constants;
using IUser = Umbraco.Core.Models.Membership.IUser;
namespace Umbraco.Web.Editors
{
@@ -47,6 +51,8 @@ namespace Umbraco.Web.Editors
{
}
/// <summary>
/// Returns a list of the sizes of gravatar urls for the user or null if the gravatar server cannot be reached
/// </summary>
@@ -229,7 +235,7 @@ namespace Umbraco.Web.Editors
/// <remarks>
/// This will email the user an invite and generate a token that will be validated in the email
/// </remarks>
public UserDisplay PostInviteUser(UserInvite userSave)
public async Task<UserDisplay> PostInviteUser(UserInvite userSave)
{
if (userSave == null) throw new ArgumentNullException("userSave");
@@ -256,6 +262,14 @@ namespace Umbraco.Web.Editors
Services.UserService.Save(user);
//TODO: Send an email!
await UserManager.EmailService.SendAsync(new IdentityMessage
{
Body = "You have been invited to the Umbraco Back Office!",
Destination = userSave.,
Subject = "You have been invited to the Umbraco Back Office!"
});
return Mapper.Map<UserDisplay>(user);
}
@@ -48,14 +48,15 @@ namespace Umbraco.Web.Models.Mapping
});
config.CreateMap<UserInvite, IUser>()
.ConstructUsing(invite => new User(invite.Name, invite.Email, invite.Email, Guid.NewGuid().ToString("N")))
.ConstructUsing(invite => new User(invite.Name, invite.Email, invite.Email, Guid.NewGuid().ToString("N")))
//generate a token for the invite
.ForMember(user => user.SecurityStamp, expression => expression.MapFrom(x => (DateTime.Now + x.Email).ToSHA1()))
.ForMember(user => user.Id, expression => expression.Ignore())
.ForMember(user => user.Avatar, expression => expression.Ignore())
.ForMember(user => user.SessionTimeout, expression => expression.Ignore())
.ForMember(user => user.StartContentIds, expression => expression.Ignore())
.ForMember(user => user.StartMediaIds, expression => expression.Ignore())
.ForMember(user => user.Language, expression => expression.Ignore())
.ForMember(user => user.SecurityStamp, expression => expression.Ignore())
.ForMember(user => user.Language, expression => expression.Ignore())
.ForMember(user => user.ProviderUserKey, expression => expression.Ignore())
.ForMember(user => user.Username, expression => expression.Ignore())
.ForMember(user => user.RawPasswordValue, expression => expression.Ignore())
@@ -5,6 +5,8 @@ using Umbraco.Core.Configuration;
using Umbraco.Web.Security;
using Umbraco.Web.WebApi.Filters;
using umbraco.BusinessLogic;
using Umbraco.Core.Models.Identity;
using Umbraco.Core.Security;
namespace Umbraco.Web.WebApi
{
@@ -34,6 +36,12 @@ namespace Umbraco.Web.WebApi
{
}
private BackOfficeUserManager<BackOfficeIdentityUser> _userManager;
protected BackOfficeUserManager<BackOfficeIdentityUser> UserManager
{
get { return _userManager ?? (_userManager = TryGetOwinContext().Result.GetBackOfficeUserManager()); }
}
private bool _userisValidated = false;
/// <summary>