mirror of https://github.com/abpframework/abp.git
csharpabpc-sharpframeworkblazoraspnet-coredotnet-coreaspnetcorearchitecturesaasdomain-driven-designangularmulti-tenancy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.9 KiB
112 lines
3.9 KiB
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Volo.Abp.Account.Localization;
|
|
using Volo.Abp.Account.Web.Pages.Account;
|
|
using Volo.Abp.Account.Web.Pages.Account.Components.ProfileManagementGroup.PersonalInfo;
|
|
using Volo.Abp.Account.Web.ProfileManagement;
|
|
using Volo.Abp.AspNetCore.Mvc.Localization;
|
|
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
|
|
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
|
|
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars;
|
|
using Volo.Abp.AutoMapper;
|
|
using Volo.Abp.ExceptionHandling;
|
|
using Volo.Abp.Http.ProxyScripting.Generators.JQuery;
|
|
using Volo.Abp.Identity.AspNetCore;
|
|
using Volo.Abp.Modularity;
|
|
using Volo.Abp.ObjectExtending;
|
|
using Volo.Abp.ObjectExtending.Modularity;
|
|
using Volo.Abp.Threading;
|
|
using Volo.Abp.UI.Navigation;
|
|
using Volo.Abp.VirtualFileSystem;
|
|
|
|
namespace Volo.Abp.Account.Web;
|
|
|
|
[DependsOn(
|
|
typeof(AbpAccountApplicationContractsModule),
|
|
typeof(AbpIdentityAspNetCoreModule),
|
|
typeof(AbpAutoMapperModule),
|
|
typeof(AbpAspNetCoreMvcUiThemeSharedModule),
|
|
typeof(AbpExceptionHandlingModule)
|
|
)]
|
|
public class AbpAccountWebModule : AbpModule
|
|
{
|
|
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner();
|
|
|
|
public override void PreConfigureServices(ServiceConfigurationContext context)
|
|
{
|
|
context.Services.PreConfigure<AbpMvcDataAnnotationsLocalizationOptions>(options =>
|
|
{
|
|
options.AddAssemblyResource(typeof(AccountResource), typeof(AbpAccountWebModule).Assembly);
|
|
});
|
|
|
|
PreConfigure<IMvcBuilder>(mvcBuilder =>
|
|
{
|
|
mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpAccountWebModule).Assembly);
|
|
});
|
|
}
|
|
|
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
|
{
|
|
Configure<AbpVirtualFileSystemOptions>(options =>
|
|
{
|
|
options.FileSets.AddEmbedded<AbpAccountWebModule>();
|
|
});
|
|
|
|
Configure<AbpNavigationOptions>(options =>
|
|
{
|
|
options.MenuContributors.Add(new AbpAccountUserMenuContributor());
|
|
});
|
|
|
|
ConfigureProfileManagementPage();
|
|
|
|
context.Services.AddAutoMapperObjectMapper<AbpAccountWebModule>();
|
|
Configure<AbpAutoMapperOptions>(options =>
|
|
{
|
|
options.AddProfile<AbpAccountWebAutoMapperProfile>(validate: true);
|
|
});
|
|
|
|
Configure<DynamicJavaScriptProxyOptions>(options =>
|
|
{
|
|
options.DisableModule(AccountRemoteServiceConsts.ModuleName);
|
|
});
|
|
}
|
|
|
|
private void ConfigureProfileManagementPage()
|
|
{
|
|
Configure<RazorPagesOptions>(options =>
|
|
{
|
|
options.Conventions.AuthorizePage("/Account/Manage");
|
|
});
|
|
|
|
Configure<ProfileManagementPageOptions>(options =>
|
|
{
|
|
options.Contributors.Add(new AccountProfileManagementPageContributor());
|
|
});
|
|
|
|
Configure<AbpBundlingOptions>(options =>
|
|
{
|
|
options.ScriptBundles
|
|
.Configure(typeof(ManageModel).FullName,
|
|
configuration =>
|
|
{
|
|
configuration.AddFiles("/client-proxies/account-proxy.js");
|
|
configuration.AddFiles("/Pages/Account/Components/ProfileManagementGroup/Password/Default.js");
|
|
configuration.AddFiles("/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/Default.js");
|
|
});
|
|
});
|
|
|
|
}
|
|
|
|
public override void PostConfigureServices(ServiceConfigurationContext context)
|
|
{
|
|
OneTimeRunner.Run(() =>
|
|
{
|
|
ModuleExtensionConfigurationHelper
|
|
.ApplyEntityConfigurationToUi(
|
|
IdentityModuleExtensionConsts.ModuleName,
|
|
IdentityModuleExtensionConsts.EntityNames.User,
|
|
editFormTypes: new[] { typeof(AccountProfilePersonalInfoManagementGroupViewComponent.PersonalInfoModel) }
|
|
);
|
|
});
|
|
}
|
|
}
|
|
|