mirror of https://github.com/abpframework/abp.git
11 changed files with 197 additions and 44 deletions
@ -0,0 +1,32 @@ |
|||||
|
using System.Threading.Tasks; |
||||
|
using AutoMapper.Internal; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using Microsoft.Extensions.Logging.Abstractions; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.EventBus.Distributed; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
|
||||
|
namespace Volo.Abp.Identity |
||||
|
{ |
||||
|
public class IdentityTenantCreatedHandler : IDistributedEventHandler<TenantCreatedEto>, ITransientDependency |
||||
|
{ |
||||
|
public ILogger<IdentityTenantCreatedHandler> Logger { get; set; } |
||||
|
|
||||
|
protected IIdentityDataSeeder IdentityDataSeeder { get; } |
||||
|
|
||||
|
public IdentityTenantCreatedHandler(IIdentityDataSeeder identityDataSeeder) |
||||
|
{ |
||||
|
IdentityDataSeeder = identityDataSeeder; |
||||
|
Logger = NullLogger<IdentityTenantCreatedHandler>.Instance; |
||||
|
} |
||||
|
|
||||
|
public async Task HandleEventAsync(TenantCreatedEto eventData) |
||||
|
{ |
||||
|
await IdentityDataSeeder.SeedAsync( |
||||
|
eventData.Properties.GetOrDefault("AdminEmail") as string ?? "admin@abp.io", |
||||
|
eventData.Properties.GetOrDefault("AdminPassword") as string ?? "1q2w3E*", |
||||
|
eventData.Id |
||||
|
); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,35 @@ |
|||||
|
using System; |
||||
|
using Microsoft.AspNetCore.Identity; |
||||
|
|
||||
|
namespace Volo.Abp.Identity |
||||
|
{ |
||||
|
public static class PasswordOptionsExtensions |
||||
|
{ |
||||
|
public static IDisposable ClearRequirements(this PasswordOptions options) |
||||
|
{ |
||||
|
var oldRequireDigit = options.RequireDigit; |
||||
|
var oldRequiredLength = options.RequiredLength; |
||||
|
var oldRequireLowercase = options.RequireLowercase; |
||||
|
var oldRequireUppercase = options.RequireUppercase; |
||||
|
var oldRequiredUniqueChars = options.RequiredUniqueChars; |
||||
|
var oldRequireNonAlphanumeric = options.RequireNonAlphanumeric; |
||||
|
|
||||
|
options.RequireDigit = false; |
||||
|
options.RequiredLength = 1; |
||||
|
options.RequireLowercase = false; |
||||
|
options.RequireUppercase = false; |
||||
|
options.RequiredUniqueChars = 1; |
||||
|
options.RequireNonAlphanumeric = false; |
||||
|
|
||||
|
return new DisposeAction(() => |
||||
|
{ |
||||
|
options.RequireDigit = oldRequireDigit; |
||||
|
options.RequiredLength = oldRequiredLength; |
||||
|
options.RequireLowercase = oldRequireLowercase; |
||||
|
options.RequireUppercase = oldRequireUppercase; |
||||
|
options.RequiredUniqueChars = oldRequiredUniqueChars; |
||||
|
options.RequireNonAlphanumeric = oldRequireNonAlphanumeric; |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,38 @@ |
|||||
|
using System.Linq; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Authorization.Permissions; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.EventBus.Distributed; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
|
||||
|
namespace Volo.Abp.PermissionManagement |
||||
|
{ |
||||
|
public class PermissionTenantCreatedHandler : IDistributedEventHandler<TenantCreatedEto>, ITransientDependency |
||||
|
{ |
||||
|
protected IPermissionDefinitionManager PermissionDefinitionManager { get; } |
||||
|
protected IPermissionDataSeeder PermissionDataSeeder { get; } |
||||
|
|
||||
|
public PermissionTenantCreatedHandler(IPermissionDefinitionManager permissionDefinitionManager, IPermissionDataSeeder permissionDataSeeder) |
||||
|
{ |
||||
|
PermissionDefinitionManager = permissionDefinitionManager; |
||||
|
PermissionDataSeeder = permissionDataSeeder; |
||||
|
} |
||||
|
|
||||
|
public async Task HandleEventAsync(TenantCreatedEto eventData) |
||||
|
{ |
||||
|
var permissionNames = PermissionDefinitionManager |
||||
|
.GetPermissions() |
||||
|
.Where(p => p.MultiTenancySide.HasFlag(MultiTenancySides.Tenant)) |
||||
|
.Where(p => !p.Providers.Any() || p.Providers.Contains(RolePermissionValueProvider.ProviderName)) |
||||
|
.Select(p => p.Name) |
||||
|
.ToArray(); |
||||
|
|
||||
|
await PermissionDataSeeder.SeedAsync( |
||||
|
RolePermissionValueProvider.ProviderName, |
||||
|
"admin", |
||||
|
permissionNames, |
||||
|
eventData.Id |
||||
|
); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue