diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs index 5070cef3a6..29288a1bd8 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; +using Volo.Abp.Features; using Volo.Abp.SettingManagement.Localization; using Volo.Abp.UI.Navigation; @@ -33,7 +34,7 @@ namespace Volo.Abp.SettingManagement.Blazor.Menus /* This may happen if MVC UI is being used in the same application. * In this case, we are removing the MVC setting management UI. */ context.Menu.GetAdministration().TryRemoveMenuItem(SettingManagementMenus.GroupName); - + context.Menu .GetAdministration() .AddItem( @@ -42,7 +43,7 @@ namespace Volo.Abp.SettingManagement.Blazor.Menus l["Settings"], "~/setting-management", icon: "fa fa-cog" - ) + ).RequireFeatures(SettingManagementFeatures.Enable) ); } @@ -60,4 +61,4 @@ namespace Volo.Abp.SettingManagement.Blazor.Menus return false; } } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor index e1b3680bc7..d4d1beeafc 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor @@ -1,6 +1,6 @@ @page "/setting-management" -@using Microsoft.AspNetCore.Authorization -@attribute [Authorize(SettingManagementPermissions.Emailing)] +@using Volo.Abp.Features +@attribute [RequiresFeature(SettingManagementFeatures.Enable)] @* ************************* PAGE HEADER ************************* *@ @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj index e9c00a0afc..38991408d5 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj @@ -26,6 +26,8 @@ + + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs index d6b6ba065e..0db97f0c6a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs @@ -1,11 +1,15 @@ -using Volo.Abp.Modularity; +using Volo.Abp.Features; +using Volo.Abp.Modularity; using Volo.Abp.Localization; using Volo.Abp.SettingManagement.Localization; +using Volo.Abp.Validation; using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.SettingManagement { - [DependsOn(typeof(AbpLocalizationModule))] + [DependsOn(typeof(AbpLocalizationModule), + typeof(AbpValidationModule), + typeof(AbpFeaturesModule))] public class AbpSettingManagementDomainSharedModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json index 88eb894435..a58714bf0f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json @@ -14,6 +14,9 @@ "SmtpEnableSsl": "Enable ssl", "SmtpUseDefaultCredentials": "Use default credentials", "DefaultFromAddress": "Default from address", - "DefaultFromDisplayName": "Default from display name" + "DefaultFromDisplayName": "Default from display name", + "Feature:SettingManagementGroup": "Setting Management", + "Feature:SettingManagementEnable": "Enable setting management", + "Feature:SettingManagementEnableDescription": "Enable setting management system in the application." } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json index 996c07ebc2..906d75ace9 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json @@ -14,6 +14,9 @@ "SmtpEnableSsl": "启用ssl", "SmtpUseDefaultCredentials": "使用默认证书", "DefaultFromAddress": "默认发件人", - "DefaultFromDisplayName": "默认显示名称" + "DefaultFromDisplayName": "默认显示名称", + "Feature:SettingManagementGroup": "设置管理", + "Feature:SettingManagementEnable": "启用设置管理", + "Feature:SettingManagementEnableDescription": "在应用程序中启用设置模板管理系统." } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json index 175cd47124..5490bf678a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json @@ -14,6 +14,9 @@ "SmtpEnableSsl": "啟用 SSL", "SmtpUseDefaultCredentials": "使用預設Credentials", "DefaultFromAddress": "預設發信信箱", - "DefaultFromDisplayName": "預設信件顯示名稱" + "DefaultFromDisplayName": "預設信件顯示名稱", + "Feature:SettingManagementGroup": "設定管理", + "Feature:SettingManagementEnable": "啟用設定管理", + "Feature:SettingManagementEnableDescription": "在應用程序中啟用設定管理系統." } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs new file mode 100644 index 0000000000..19248e85b1 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs @@ -0,0 +1,27 @@ +using Volo.Abp.Features; +using Volo.Abp.Localization; +using Volo.Abp.SettingManagement.Localization; +using Volo.Abp.Validation.StringValues; + +namespace Volo.Abp.SettingManagement +{ + public class SettingManagementFeatureDefinitionProvider: FeatureDefinitionProvider + { + public override void Define(IFeatureDefinitionContext context) + { + var group = context.AddGroup(SettingManagementFeatures.GroupName, + L("Feature:SettingManagementGroup")); + + group.AddFeature(SettingManagementFeatures.Enable, + "true", + L("Feature:SettingManagementEnable"), + L("Feature:SettingManagementEnableDescription"), + new ToggleStringValueType()); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs new file mode 100644 index 0000000000..e8b2b69846 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.SettingManagement +{ + public class SettingManagementFeatures + { + public const string GroupName = "TextManagement"; + + public const string Enable = GroupName + ".Enable"; + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs index d1c1df76fe..6a2a970b43 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs @@ -43,11 +43,6 @@ namespace Volo.Abp.SettingManagement.Web options.FileSets.AddEmbedded(); }); - Configure(options => - { - options.Conventions.AuthorizePage("/SettingManagement/Index", SettingManagementPermissions.Emailing); - }); - Configure(options => { options.ScriptBundles diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs index 59fc10c174..3efc217186 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; using System.Linq; using System.Threading.Tasks; +using Volo.Abp.Features; using Volo.Abp.SettingManagement.Web.Pages.SettingManagement; using Volo.Abp.UI.Navigation; using Volo.Abp.SettingManagement.Localization; @@ -44,7 +45,7 @@ namespace Volo.Abp.SettingManagement.Web.Navigation l["Settings"], "~/SettingManagement", icon: "fa fa-cog" - ) + ).RequireFeatures(SettingManagementFeatures.Enable) ); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs index 8cc7f62143..656b71daec 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs @@ -4,9 +4,11 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.EventBus.Local; +using Volo.Abp.Features; namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement { + [RequiresFeature(SettingManagementFeatures.Enable)] public class IndexModel : AbpPageModel { public SettingPageCreationContext SettingPageCreationContext { get; private set; }