From 0115d21f78e99cc2b0cb6559a027bd5cf90b8d87 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 22 Jun 2023 17:49:12 +0800 Subject: [PATCH] Add `time zone` permission. --- ...meZoneSettingsFeatureSimpleStateChecker.cs | 24 +++++++++++++++++++ ...gManagementPermissionDefinitionProvider.cs | 3 +++ .../SettingManagementPermissions.cs | 4 +++- .../TimeZoneSettingsAppService.cs | 2 ++ .../Resources/AbpSettingManagement/el.json | 1 + .../Resources/AbpSettingManagement/en.json | 1 + .../Resources/AbpSettingManagement/fi.json | 3 ++- .../Resources/AbpSettingManagement/hr.json | 1 + .../Resources/AbpSettingManagement/hu.json | 3 ++- .../Resources/AbpSettingManagement/pt-BR.json | 1 + .../Resources/AbpSettingManagement/tr.json | 1 + .../AbpSettingManagement/zh-Hans.json | 1 + .../AbpSettingManagement/zh-Hant.json | 1 + 13 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowChangingTimeZoneSettingsFeatureSimpleStateChecker.cs diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowChangingTimeZoneSettingsFeatureSimpleStateChecker.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowChangingTimeZoneSettingsFeatureSimpleStateChecker.cs new file mode 100644 index 0000000000..b6d50f2046 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowChangingTimeZoneSettingsFeatureSimpleStateChecker.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Features; +using Volo.Abp.MultiTenancy; +using Volo.Abp.SimpleStateChecking; + +namespace Volo.Abp.SettingManagement; + +public class AllowChangingTimeZoneSettingsFeatureSimpleStateChecker : ISimpleStateChecker +{ + public async Task IsEnabledAsync(SimpleStateCheckerContext context) + { + var currentTenant = context.ServiceProvider.GetRequiredService(); + + if (!currentTenant.IsAvailable) + { + return true; + } + + var featureChecker = context.ServiceProvider.GetRequiredService(); + return await featureChecker.IsEnabledAsync(SettingManagementFeatures.EnableTimeZone); + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs index db0b8dd907..6270460623 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs @@ -15,6 +15,9 @@ public class SettingManagementPermissionDefinitionProvider : PermissionDefinitio emailPermission.StateCheckers.Add(new AllowChangingEmailSettingsFeatureSimpleStateChecker()); emailPermission.AddChild(SettingManagementPermissions.EmailingTest, L("Permission:EmailingTest")); + + moduleGroup.AddPermission(SettingManagementPermissions.TimeZone, L("Permission:TimeZone")); + emailPermission.StateCheckers.Add(new AllowChangingTimeZoneSettingsFeatureSimpleStateChecker()); } private static LocalizableString L(string name) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs index 43f0c5a104..5a5d01c52a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs @@ -7,9 +7,11 @@ public class SettingManagementPermissions public const string GroupName = "SettingManagement"; public const string Emailing = GroupName + ".Emailing"; - + public const string EmailingTest = Emailing + ".Test"; + public const string TimeZone = GroupName + ".TimeZone"; + public static string[] GetAll() { return ReflectionHelper.GetPublicConstantsRecursively(typeof(SettingManagementPermissions)); diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs index 3202f37cd1..423840284e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; using TimeZoneConverter; using Volo.Abp.Features; using Volo.Abp.MultiTenancy; @@ -11,6 +12,7 @@ using Volo.Abp.Timing; namespace Volo.Abp.SettingManagement; [RequiresFeature(SettingManagementFeatures.EnableTimeZone)] +[Authorize(SettingManagementPermissions.TimeZone)] public class TimeZoneSettingsAppService : SettingManagementAppServiceBase, ITimeZoneSettingsAppService { protected ISettingManager SettingManager { get; } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json index 03846bbea2..b2c8048d52 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json @@ -6,6 +6,7 @@ "Permission:SettingManagement": "Διαχείριση ρυθμίσεων", "Permission:Emailing": "Αποστολή email", "Permission:EmailingTest": "Αποστολή δοκιμαστικού email", + "Permission:TimeZone": "Ζώνη ώρας", "SendTestEmail": "Αποστολή δοκιμαστικού email", "SenderEmailAddress": "Διεύθυνση email αποστολέα", "TargetEmailAddress": "Διεύθυνση email παραλήπτη", 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 6cbafb8bcc..b2c9bc0b11 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 @@ -6,6 +6,7 @@ "Permission:SettingManagement": "Setting Management", "Permission:Emailing": "Emailing", "Permission:EmailingTest": "Emailing test", + "Permission:TimeZone": "Time zone", "SendTestEmail": "Send test email", "SenderEmailAddress": "Sender email address", "TargetEmailAddress": "Target email address", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json index 2e0c11d63f..dfb712bae3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json @@ -6,6 +6,7 @@ "Permission:SettingManagement": "Asetusten hallinta", "Permission:Emailing": "Sähköpostiviestit", "Permission:EmailingTest": "Sähköpostitesti", + "Permission:TimeZone": "Aikavyöhyke", "SendTestEmail": "Lähetä testisähköposti", "SenderEmailAddress": "Lähettäjän sähköpostiosoite", "TargetEmailAddress": "Kohdesähköpostiosoite", @@ -31,4 +32,4 @@ "Feature:AllowChangingEmailSettings": "Salli sähköpostiasetusten muuttaminen.", "Feature:AllowChangingEmailSettingsDescription": "Salli sähköpostiasetusten muuttaminen." } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json index cd45f2339d..8b779c491e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json @@ -7,6 +7,7 @@ "Permission:Emailing": "Slanje e-poštom", "Permission:EmailingTest": "Test slanja e-pošte", "SendTestEmail": "Po�alji probnu e-poštu", + "Permission:TimeZone": "Vremenska zona", "SenderEmailAddress": "Adresa e-pošte pošiljatelja", "TargetEmailAddress": "Ciljana adresa e-pošte", "Subject": "Predmet", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json index 878ca22fc3..a0eaac826a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json @@ -6,6 +6,7 @@ "Permission:SettingManagement": "Beállításkezelés", "Permission:Emailing": "E-mailezés", "Permission:EmailingTest": "E-mail teszt", + "Permission:TimeZone": "Időzóna", "SendTestEmail": "Küldj teszt e-mailt", "SenderEmailAddress": "Feladó e-mail címe", "TargetEmailAddress": "Cél e-mail cím", @@ -31,4 +32,4 @@ "Feature:AllowChangingEmailSettings": "Az e-mail beállítások módosításának engedélyezése.", "Feature:AllowChangingEmailSettingsDescription": "Az e-mail beállítások módosításának engedélyezése." } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json index b609a6e762..3bbae86055 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json @@ -6,6 +6,7 @@ "Permission:SettingManagement": "Gestão de Cenários", "Permission:Emailing": "Enviando por e-mail", "Permission:EmailingTest": "Teste de e-mail", + "Permission:TimeZone": "Fuso horário", "SendTestEmail": "Enviar e-mail de teste", "SenderEmailAddress": "E-mail remetente", "TargetEmailAddress": "E-mail destinatário", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json index 668fb4c0e9..4db9d13242 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json @@ -6,6 +6,7 @@ "Permission:SettingManagement": "Ayarlar yönetimi", "Permission:Emailing": "Email", "Permission:EmailingTest": "Email testi", + "Permission:TimeZone": "Zaman dilimi", "SendTestEmail": "Test emaili gönder", "SenderEmailAddress": "Gönderen email adresi", "TargetEmailAddress": "Hedef email adresi", 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 c96ad492bb..d988cd639f 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 @@ -6,6 +6,7 @@ "Permission:SettingManagement": "设置管理", "Permission:Emailing": "邮件", "Permission:EmailingTest": "邮件测试", + "Permission:TimeZone": "时区", "SendTestEmail": "发送测试邮件", "SenderEmailAddress": "发件人邮箱地址", "TargetEmailAddress": "收件人邮箱地址", 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 5f18516463..87de5451b8 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 @@ -6,6 +6,7 @@ "Permission:SettingManagement": "設定管理", "Permission:Emailing": "信箱", "Permission:EmailingTest": "郵件測試", + "Permission:TimeZone": "時區", "SendTestEmail": "發送測試郵件", "SenderEmailAddress": "發送者電子郵件地址", "TargetEmailAddress": "目標電子郵件地址",