Browse Source

Added interface for user events. #155

pull/158/merge
Sebastian Stehle 8 years ago
parent
commit
6f4408a727
  1. 17
      src/Squidex.Domain.Users/IUserEvents.cs
  2. 19
      src/Squidex.Domain.Users/NoopUserEvents.cs
  3. 25
      src/Squidex/Config/Domain/WriteModule.cs
  4. 5
      src/Squidex/Controllers/UI/Account/AccountController.cs

17
src/Squidex.Domain.Users/IUserEvents.cs

@ -0,0 +1,17 @@
// ==========================================================================
// IUserEvents.cs
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex Group
// All rights reserved.
// ==========================================================================
using Squidex.Shared.Users;
namespace Squidex.Domain.Users
{
public interface IUserEvents
{
void OnUserRegistered(IUser user);
}
}

19
src/Squidex.Domain.Users/NoopUserEvents.cs

@ -0,0 +1,19 @@
// ==========================================================================
// NoopUserEvents.cs
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex Group
// All rights reserved.
// ==========================================================================
using Squidex.Shared.Users;
namespace Squidex.Domain.Users
{
public sealed class NoopUserEvents : IUserEvents
{
public void OnUserRegistered(IUser user)
{
}
}
}

25
src/Squidex/Config/Domain/WriteModule.cs

@ -15,6 +15,7 @@ using Squidex.Domain.Apps.Write.Assets;
using Squidex.Domain.Apps.Write.Contents; using Squidex.Domain.Apps.Write.Contents;
using Squidex.Domain.Apps.Write.Schemas; using Squidex.Domain.Apps.Write.Schemas;
using Squidex.Domain.Apps.Write.Webhooks; using Squidex.Domain.Apps.Write.Webhooks;
using Squidex.Domain.Users;
using Squidex.Infrastructure.CQRS.Commands; using Squidex.Infrastructure.CQRS.Commands;
using Squidex.Pipeline.CommandMiddlewares; using Squidex.Pipeline.CommandMiddlewares;
@ -31,6 +32,18 @@ namespace Squidex.Config.Domain
protected override void Load(ContainerBuilder builder) protected override void Load(ContainerBuilder builder)
{ {
builder.RegisterType<NoopUserEvents>()
.As<IUserEvents>()
.SingleInstance();
builder.RegisterType<JintScriptEngine>()
.As<IScriptEngine>()
.SingleInstance();
builder.RegisterType<ContentVersionLoader>()
.As<IContentVersionLoader>()
.SingleInstance();
builder.RegisterType<ETagCommandMiddleware>() builder.RegisterType<ETagCommandMiddleware>()
.As<ICommandMiddleware>() .As<ICommandMiddleware>()
.SingleInstance(); .SingleInstance();
@ -51,14 +64,6 @@ namespace Squidex.Config.Domain
.As<ICommandMiddleware>() .As<ICommandMiddleware>()
.SingleInstance(); .SingleInstance();
builder.RegisterType<JintScriptEngine>()
.As<IScriptEngine>()
.SingleInstance();
builder.RegisterType<ContentVersionLoader>()
.As<IContentVersionLoader>()
.SingleInstance();
builder.RegisterType<AppCommandMiddleware>() builder.RegisterType<AppCommandMiddleware>()
.As<ICommandMiddleware>() .As<ICommandMiddleware>()
.SingleInstance(); .SingleInstance();
@ -79,10 +84,6 @@ namespace Squidex.Config.Domain
.As<ICommandMiddleware>() .As<ICommandMiddleware>()
.SingleInstance(); .SingleInstance();
builder.RegisterType<ETagCommandMiddleware>()
.As<ICommandMiddleware>()
.SingleInstance();
builder.Register<DomainObjectFactoryFunction<AppDomainObject>>(c => (id => new AppDomainObject(id, -1))) builder.Register<DomainObjectFactoryFunction<AppDomainObject>>(c => (id => new AppDomainObject(id, -1)))
.AsSelf() .AsSelf()
.SingleInstance(); .SingleInstance();

5
src/Squidex/Controllers/UI/Account/AccountController.cs

@ -35,6 +35,7 @@ namespace Squidex.Controllers.UI.Account
private readonly SignInManager<IUser> signInManager; private readonly SignInManager<IUser> signInManager;
private readonly UserManager<IUser> userManager; private readonly UserManager<IUser> userManager;
private readonly IUserFactory userFactory; private readonly IUserFactory userFactory;
private readonly IUserEvents userEvents;
private readonly IOptions<MyIdentityOptions> identityOptions; private readonly IOptions<MyIdentityOptions> identityOptions;
private readonly IOptions<MyUrlsOptions> urlOptions; private readonly IOptions<MyUrlsOptions> urlOptions;
private readonly ISemanticLog log; private readonly ISemanticLog log;
@ -44,6 +45,7 @@ namespace Squidex.Controllers.UI.Account
SignInManager<IUser> signInManager, SignInManager<IUser> signInManager,
UserManager<IUser> userManager, UserManager<IUser> userManager,
IUserFactory userFactory, IUserFactory userFactory,
IUserEvents userEvents,
IOptions<MyIdentityOptions> identityOptions, IOptions<MyIdentityOptions> identityOptions,
IOptions<MyUrlsOptions> urlOptions, IOptions<MyUrlsOptions> urlOptions,
ISemanticLog log, ISemanticLog log,
@ -51,6 +53,7 @@ namespace Squidex.Controllers.UI.Account
{ {
this.log = log; this.log = log;
this.urlOptions = urlOptions; this.urlOptions = urlOptions;
this.userEvents = userEvents;
this.userManager = userManager; this.userManager = userManager;
this.userFactory = userFactory; this.userFactory = userFactory;
this.interactions = interactions; this.interactions = interactions;
@ -242,6 +245,8 @@ namespace Squidex.Controllers.UI.Account
await LockAsync(user, isFirst) && await LockAsync(user, isFirst) &&
await LoginAsync(externalLogin); await LoginAsync(externalLogin);
userEvents.OnUserRegistered(user);
if (user.IsLocked) if (user.IsLocked)
{ {
return View(nameof(LockedOut)); return View(nameof(LockedOut));

Loading…
Cancel
Save