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