starting to get the invite email with token working
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user