From 27a7c5436850fd2c72c73d27bec9b91a03bfb9a4 Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Tue, 6 Sep 2022 17:22:50 +0300 Subject: [PATCH 1/4] branding for current user --- .../Api/Settings/WhitelabelController.cs | 177 +++++------------- 1 file changed, 48 insertions(+), 129 deletions(-) diff --git a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs index c4a0b6a5c2..432a5a7c4b 100644 --- a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs +++ b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs @@ -68,37 +68,16 @@ public class WhitelabelController : BaseSettingsController ///false [HttpPost("whitelabel/save")] - public bool SaveWhiteLabelSettings(WhiteLabelRequestsDto inDto, [FromQuery] WhiteLabelQueryRequestsDto inQueryDto) + public bool SaveWhiteLabelSettings(WhiteLabelRequestsDto inDto) { _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); - if (inQueryDto.IsDefault) - { - DemandRebrandingPermission(); - SaveWhiteLabelSettingsForDefaultTenant(inDto); - } - else - { - SaveWhiteLabelSettingsForCurrentTenant(inDto); - } - return true; - } - - private void SaveWhiteLabelSettingsForCurrentTenant(WhiteLabelRequestsDto inDto) - { var settings = _settingsManager.Load(); + SaveWhiteLabelSettingsForTenant(settings, null, Tenant.Id, inDto); - SaveWhiteLabelSettingsForTenant(settings, null, Tenant.Id, inDto); - } - - private void SaveWhiteLabelSettingsForDefaultTenant(WhiteLabelRequestsDto inDto) - { - var settings = _settingsManager.LoadForDefaultTenant(); - var storage = _storageFactory.GetStorage(string.Empty, "static_partnerdata"); - - SaveWhiteLabelSettingsForTenant(settings, storage, Tenant.DefaultTenant, inDto); + return true; } private void SaveWhiteLabelSettingsForTenant(TenantWhiteLabelSettings settings, IDataStore storage, int tenantId, WhiteLabelRequestsDto inDto) @@ -122,7 +101,7 @@ public class WhitelabelController : BaseSettingsController ///false [HttpPost("whitelabel/savefromfiles")] - public bool SaveWhiteLabelSettingsFromFiles([FromQuery] WhiteLabelQueryRequestsDto inDto) + public bool SaveWhiteLabelSettingsFromFiles() { _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); @@ -133,31 +112,10 @@ public class WhitelabelController : BaseSettingsController throw new InvalidOperationException("No input files"); } - if (inDto.IsDefault) - { - DemandRebrandingPermission(); - SaveWhiteLabelSettingsFromFilesForDefaultTenant(); - } - else - { - SaveWhiteLabelSettingsFromFilesForCurrentTenant(); - } - return true; - } - - private void SaveWhiteLabelSettingsFromFilesForCurrentTenant() - { var settings = _settingsManager.Load(); + SaveWhiteLabelSettingsFromFilesForTenant(settings, null, Tenant.Id); - SaveWhiteLabelSettingsFromFilesForTenant(settings, null, Tenant.Id); - } - - private void SaveWhiteLabelSettingsFromFilesForDefaultTenant() - { - var settings = _settingsManager.LoadForDefaultTenant(); - var storage = _storageFactory.GetStorage(string.Empty, "static_partnerdata"); - - SaveWhiteLabelSettingsFromFilesForTenant(settings, storage, Tenant.DefaultTenant); + return true; } private void SaveWhiteLabelSettingsFromFilesForTenant(TenantWhiteLabelSettings settings, IDataStore storage, int tenantId) @@ -207,47 +165,31 @@ public class WhitelabelController : BaseSettingsController Dictionary result; - if (inDto.IsDefault) - { - result = new Dictionary + var _tenantWhiteLabelSettings = _settingsManager.Load(); + + result = new Dictionary { - { ((int)WhiteLabelLogoTypeEnum.LightSmall).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.LightSmall, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.Dark).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.Dark, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.Favicon).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.Favicon, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.DocsEditor).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.DocsEditor, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.DocsEditorEmbed).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.DocsEditorEmbed, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.LeftMenu).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.LeftMenu, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.AboutPage).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteDefaultLogoPath(WhiteLabelLogoTypeEnum.AboutPage, !inDto.IsRetina)) } + { ((int)WhiteLabelLogoTypeEnum.LightSmall).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.LightSmall, !inDto.IsRetina)) }, + { ((int)WhiteLabelLogoTypeEnum.Dark).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.Dark, !inDto.IsRetina)) }, + { ((int)WhiteLabelLogoTypeEnum.Favicon).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.Favicon, !inDto.IsRetina)) }, + { ((int)WhiteLabelLogoTypeEnum.DocsEditor).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.DocsEditor, !inDto.IsRetina)) }, + { ((int)WhiteLabelLogoTypeEnum.DocsEditorEmbed).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings,WhiteLabelLogoTypeEnum.DocsEditorEmbed, !inDto.IsRetina)) }, + { ((int)WhiteLabelLogoTypeEnum.LeftMenu).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings,WhiteLabelLogoTypeEnum.LeftMenu, !inDto.IsRetina)) }, + { ((int)WhiteLabelLogoTypeEnum.AboutPage).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings,WhiteLabelLogoTypeEnum.AboutPage, !inDto.IsRetina)) } }; - } - else - { - var _tenantWhiteLabelSettings = _settingsManager.Load(); - - result = new Dictionary - { - { ((int)WhiteLabelLogoTypeEnum.LightSmall).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.LightSmall, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.Dark).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.Dark, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.Favicon).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.Favicon, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.DocsEditor).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum.DocsEditor, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.DocsEditorEmbed).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings,WhiteLabelLogoTypeEnum.DocsEditorEmbed, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.LeftMenu).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings,WhiteLabelLogoTypeEnum.LeftMenu, !inDto.IsRetina)) }, - { ((int)WhiteLabelLogoTypeEnum.AboutPage).ToString(), _commonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettingsHelper.GetAbsoluteLogoPath(_tenantWhiteLabelSettings,WhiteLabelLogoTypeEnum.AboutPage, !inDto.IsRetina)) } - }; - } return result; } ///false [HttpGet("whitelabel/logotext")] - public object GetWhiteLabelLogoText([FromQuery] WhiteLabelQueryRequestsDto inDto) + public object GetWhiteLabelLogoText() { _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); - var settings = inDto.IsDefault ? _settingsManager.LoadForDefaultTenant() : _settingsManager.Load(); + var settings = _settingsManager.Load(); return settings.LogoText ?? TenantWhiteLabelSettings.DefaultLogoText; } @@ -255,47 +197,27 @@ public class WhitelabelController : BaseSettingsController ///false [HttpPut("whitelabel/restore")] - public bool RestoreWhiteLabelOptions(WhiteLabelQueryRequestsDto inDto) + public bool RestoreWhiteLabelOptions() { _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); - DemandWhiteLabelPermission(); - if (inDto.IsDefault) - { - DemandRebrandingPermission(); - RestoreWhiteLabelOptionsForDefaultTenant(); - } - else - { - RestoreWhiteLabelOptionsForCurrentTenant(); - } + RestoreWhiteLabelOptionsForCurrentTenant(); + return true; } private void RestoreWhiteLabelOptionsForCurrentTenant() { var settings = _settingsManager.Load(); - - RestoreWhiteLabelOptionsForTenant(settings, null, Tenant.Id); + + _tenantWhiteLabelSettingsHelper.RestoreDefault(settings, _tenantLogoManager, Tenant.Id, null); var tenantInfoSettings = _settingsManager.Load(); _tenantInfoSettingsHelper.RestoreDefaultLogo(tenantInfoSettings, _tenantLogoManager); _settingsManager.Save(tenantInfoSettings); } - private void RestoreWhiteLabelOptionsForDefaultTenant() - { - var settings = _settingsManager.LoadForDefaultTenant(); - var storage = _storageFactory.GetStorage(string.Empty, "static_partnerdata"); - - RestoreWhiteLabelOptionsForTenant(settings, storage, Tenant.DefaultTenant); - } - - private void RestoreWhiteLabelOptionsForTenant(TenantWhiteLabelSettings settings, IDataStore storage, int tenantId) - { - _tenantWhiteLabelSettingsHelper.RestoreDefault(settings, _tenantLogoManager, tenantId, storage); - } ///false [HttpGet("companywhitelabel")] @@ -324,11 +246,11 @@ public class WhitelabelController : BaseSettingsController throw new ArgumentNullException("settings"); } - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); companyWhiteLabelSettingsWrapper.Settings.IsLicensor = false; - _settingsManager.SaveForDefaultTenant(companyWhiteLabelSettingsWrapper.Settings); + _settingsManager.SaveForCurrentUser(companyWhiteLabelSettingsWrapper.Settings); return true; } @@ -337,18 +259,18 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/company")] public CompanyWhiteLabelSettings GetCompanyWhiteLabelSettings() { - return _settingsManager.LoadForDefaultTenant(); + return _settingsManager.LoadForCurrentUser(); } ///false [HttpDelete("rebranding/company")] public CompanyWhiteLabelSettings DeleteCompanyWhiteLabelSettings() { - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); var defaultSettings = _settingsManager.GetDefault(); - _settingsManager.SaveForDefaultTenant(defaultSettings); + _settingsManager.SaveForCurrentUser(defaultSettings); return defaultSettings; } @@ -362,9 +284,9 @@ public class WhitelabelController : BaseSettingsController throw new ArgumentNullException("settings"); } - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); - _settingsManager.SaveForDefaultTenant(wrapper.Settings); + _settingsManager.SaveForCurrentUser(wrapper.Settings); return true; } @@ -373,18 +295,18 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/additional")] public AdditionalWhiteLabelSettings GetAdditionalWhiteLabelSettings() { - return _settingsManager.LoadForDefaultTenant(); + return _settingsManager.LoadForCurrentUser(); } ///false [HttpDelete("rebranding/additional")] public AdditionalWhiteLabelSettings DeleteAdditionalWhiteLabelSettings() { - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); var defaultSettings = _settingsManager.GetDefault(); - _settingsManager.SaveForDefaultTenant(defaultSettings); + _settingsManager.SaveForCurrentUser(defaultSettings); return defaultSettings; } @@ -407,9 +329,9 @@ public class WhitelabelController : BaseSettingsController { ArgumentNullException.ThrowIfNull(settings); - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); - _settingsManager.SaveForDefaultTenant(settings); + _settingsManager.SaveForCurrentUser(settings); return true; } @@ -417,13 +339,13 @@ public class WhitelabelController : BaseSettingsController [HttpPut("rebranding/mail")] public bool UpdateMailWhiteLabelSettings(MailWhiteLabelSettingsRequestsDto inDto) { - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); - var settings = _settingsManager.LoadForDefaultTenant(); + var settings = _settingsManager.LoadForCurrentUser(); settings.FooterEnabled = inDto.FooterEnabled; - _settingsManager.SaveForDefaultTenant(settings); + _settingsManager.SaveForCurrentUser(settings); return true; } @@ -432,37 +354,34 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/mail")] public MailWhiteLabelSettings GetMailWhiteLabelSettings() { - return _settingsManager.LoadForDefaultTenant(); + return _settingsManager.LoadForCurrentUser(); } ///false [HttpDelete("rebranding/mail")] public MailWhiteLabelSettings DeleteMailWhiteLabelSettings() { - DemandRebrandingPermission(); + DemandWhiteLabelPermission(); var defaultSettings = _settingsManager.GetDefault(); - _settingsManager.SaveForDefaultTenant(defaultSettings); + _settingsManager.SaveForCurrentUser(defaultSettings); return defaultSettings; } + ///false + [HttpGet("enableWhitelabel")] + public bool GetEnableWhitelabel() + { + return _coreBaseSettings.Standalone || _tenantLogoManager.WhiteLabelEnabled && _tenantLogoManager.WhiteLabelPaid; + } + private void DemandWhiteLabelPermission() { if (!_coreBaseSettings.Standalone && (!_tenantLogoManager.WhiteLabelEnabled || !_tenantLogoManager.WhiteLabelPaid)) { throw new BillingException(Resource.ErrorNotAllowedOption, "WhiteLabel"); } - } - - private void DemandRebrandingPermission() - { - _tenantExtra.DemandControlPanelPermission(); - - if (_coreBaseSettings.CustomMode) - { - throw new SecurityException(); - } } } From e8d3169af4c932e83f397a2dc75d06e39e5cb061 Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Fri, 9 Sep 2022 13:51:03 +0300 Subject: [PATCH 2/4] fix --- .../Api/Settings/WhitelabelController.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs index 432a5a7c4b..a15389d6ed 100644 --- a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs +++ b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs @@ -250,7 +250,7 @@ public class WhitelabelController : BaseSettingsController companyWhiteLabelSettingsWrapper.Settings.IsLicensor = false; - _settingsManager.SaveForCurrentUser(companyWhiteLabelSettingsWrapper.Settings); + _settingsManager.Save(companyWhiteLabelSettingsWrapper.Settings); return true; } @@ -259,7 +259,7 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/company")] public CompanyWhiteLabelSettings GetCompanyWhiteLabelSettings() { - return _settingsManager.LoadForCurrentUser(); + return _settingsManager.Load(); } ///false @@ -270,7 +270,7 @@ public class WhitelabelController : BaseSettingsController var defaultSettings = _settingsManager.GetDefault(); - _settingsManager.SaveForCurrentUser(defaultSettings); + _settingsManager.Save(defaultSettings); return defaultSettings; } @@ -286,7 +286,7 @@ public class WhitelabelController : BaseSettingsController DemandWhiteLabelPermission(); - _settingsManager.SaveForCurrentUser(wrapper.Settings); + _settingsManager.Save(wrapper.Settings); return true; } @@ -295,7 +295,7 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/additional")] public AdditionalWhiteLabelSettings GetAdditionalWhiteLabelSettings() { - return _settingsManager.LoadForCurrentUser(); + return _settingsManager.Load(); } ///false @@ -306,7 +306,7 @@ public class WhitelabelController : BaseSettingsController var defaultSettings = _settingsManager.GetDefault(); - _settingsManager.SaveForCurrentUser(defaultSettings); + _settingsManager.Save(defaultSettings); return defaultSettings; } @@ -331,7 +331,7 @@ public class WhitelabelController : BaseSettingsController DemandWhiteLabelPermission(); - _settingsManager.SaveForCurrentUser(settings); + _settingsManager.Save(settings); return true; } @@ -341,11 +341,11 @@ public class WhitelabelController : BaseSettingsController { DemandWhiteLabelPermission(); - var settings = _settingsManager.LoadForCurrentUser(); + var settings = _settingsManager.Load(); settings.FooterEnabled = inDto.FooterEnabled; - _settingsManager.SaveForCurrentUser(settings); + _settingsManager.Save(settings); return true; } @@ -354,7 +354,7 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/mail")] public MailWhiteLabelSettings GetMailWhiteLabelSettings() { - return _settingsManager.LoadForCurrentUser(); + return _settingsManager.Load(); } ///false @@ -365,7 +365,7 @@ public class WhitelabelController : BaseSettingsController var defaultSettings = _settingsManager.GetDefault(); - _settingsManager.SaveForCurrentUser(defaultSettings); + _settingsManager.Save(defaultSettings); return defaultSettings; } From 549854c579b50ce7986c185d694373e1824e7d9b Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Fri, 9 Sep 2022 15:20:51 +0300 Subject: [PATCH 3/4] add DemandPermissions --- .../Api/Settings/WhitelabelController.cs | 69 +++++++++---------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs index a15389d6ed..848ab225dd 100644 --- a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs +++ b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs @@ -29,8 +29,7 @@ namespace ASC.Web.Api.Controllers.Settings; public class WhitelabelController : BaseSettingsController { private Tenant Tenant { get { return ApiContext.Tenant; } } - - private readonly TenantExtra _tenantExtra; + private readonly PermissionContext _permissionContext; private readonly SettingsManager _settingsManager; private readonly TenantInfoSettingsHelper _tenantInfoSettingsHelper; @@ -38,11 +37,9 @@ public class WhitelabelController : BaseSettingsController private readonly TenantLogoManager _tenantLogoManager; private readonly CoreBaseSettings _coreBaseSettings; private readonly CommonLinkUtility _commonLinkUtility; - private readonly StorageFactory _storageFactory; public WhitelabelController( - ApiContext apiContext, - TenantExtra tenantExtra, + ApiContext apiContext, PermissionContext permissionContext, SettingsManager settingsManager, WebItemManager webItemManager, @@ -51,11 +48,9 @@ public class WhitelabelController : BaseSettingsController TenantLogoManager tenantLogoManager, CoreBaseSettings coreBaseSettings, CommonLinkUtility commonLinkUtility, - IMemoryCache memoryCache, - StorageFactory storageFactory, + IMemoryCache memoryCache, IHttpContextAccessor httpContextAccessor) : base(apiContext, memoryCache, webItemManager, httpContextAccessor) - { - _tenantExtra = tenantExtra; + { _permissionContext = permissionContext; _settingsManager = settingsManager; _tenantInfoSettingsHelper = tenantInfoSettingsHelper; @@ -63,7 +58,6 @@ public class WhitelabelController : BaseSettingsController _tenantLogoManager = tenantLogoManager; _coreBaseSettings = coreBaseSettings; _commonLinkUtility = commonLinkUtility; - _storageFactory = storageFactory; } ///false @@ -222,7 +216,9 @@ public class WhitelabelController : BaseSettingsController ///false [HttpGet("companywhitelabel")] public List GetLicensorData() - { + { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + var result = new List(); var instance = CompanyWhiteLabelSettings.Instance(_settingsManager); @@ -240,14 +236,15 @@ public class WhitelabelController : BaseSettingsController ///false [HttpPost("rebranding/company")] public bool SaveCompanyWhiteLabelSettings(CompanyWhiteLabelSettingsWrapper companyWhiteLabelSettingsWrapper) - { + { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + DemandWhiteLabelPermission(); + if (companyWhiteLabelSettingsWrapper.Settings == null) { throw new ArgumentNullException("settings"); } - DemandWhiteLabelPermission(); - companyWhiteLabelSettingsWrapper.Settings.IsLicensor = false; _settingsManager.Save(companyWhiteLabelSettingsWrapper.Settings); @@ -259,6 +256,8 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/company")] public CompanyWhiteLabelSettings GetCompanyWhiteLabelSettings() { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + return _settingsManager.Load(); } @@ -266,6 +265,7 @@ public class WhitelabelController : BaseSettingsController [HttpDelete("rebranding/company")] public CompanyWhiteLabelSettings DeleteCompanyWhiteLabelSettings() { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); var defaultSettings = _settingsManager.GetDefault(); @@ -278,14 +278,15 @@ public class WhitelabelController : BaseSettingsController ///false [HttpPost("rebranding/additional")] public bool SaveAdditionalWhiteLabelSettings(AdditionalWhiteLabelSettingsWrapper wrapper) - { + { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + DemandWhiteLabelPermission(); + if (wrapper.Settings == null) { throw new ArgumentNullException("settings"); } - DemandWhiteLabelPermission(); - _settingsManager.Save(wrapper.Settings); return true; @@ -295,6 +296,8 @@ public class WhitelabelController : BaseSettingsController [HttpGet("rebranding/additional")] public AdditionalWhiteLabelSettings GetAdditionalWhiteLabelSettings() { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + return _settingsManager.Load(); } @@ -302,6 +305,7 @@ public class WhitelabelController : BaseSettingsController [HttpDelete("rebranding/additional")] public AdditionalWhiteLabelSettings DeleteAdditionalWhiteLabelSettings() { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); var defaultSettings = _settingsManager.GetDefault(); @@ -313,24 +317,13 @@ public class WhitelabelController : BaseSettingsController ///false [HttpPost("rebranding/mail")] - public bool SaveMailWhiteLabelSettingsFromBody([FromBody] MailWhiteLabelSettings settings) - { - return SaveMailWhiteLabelSettings(settings); - } - - ///false - [HttpPost("rebranding/mail")] - public bool SaveMailWhiteLabelSettingsFromForm([FromForm] MailWhiteLabelSettings settings) - { - return SaveMailWhiteLabelSettings(settings); - } - - private bool SaveMailWhiteLabelSettings(MailWhiteLabelSettings settings) - { + public bool SaveMailWhiteLabelSettings(MailWhiteLabelSettings settings) + { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + DemandWhiteLabelPermission(); + ArgumentNullException.ThrowIfNull(settings); - DemandWhiteLabelPermission(); - _settingsManager.Save(settings); return true; } @@ -339,6 +332,7 @@ public class WhitelabelController : BaseSettingsController [HttpPut("rebranding/mail")] public bool UpdateMailWhiteLabelSettings(MailWhiteLabelSettingsRequestsDto inDto) { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); var settings = _settingsManager.Load(); @@ -353,14 +347,17 @@ public class WhitelabelController : BaseSettingsController ///false [HttpGet("rebranding/mail")] public MailWhiteLabelSettings GetMailWhiteLabelSettings() - { + { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + return _settingsManager.Load(); } ///false [HttpDelete("rebranding/mail")] public MailWhiteLabelSettings DeleteMailWhiteLabelSettings() - { + { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); var defaultSettings = _settingsManager.GetDefault(); @@ -374,6 +371,8 @@ public class WhitelabelController : BaseSettingsController [HttpGet("enableWhitelabel")] public bool GetEnableWhitelabel() { + _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); + return _coreBaseSettings.Standalone || _tenantLogoManager.WhiteLabelEnabled && _tenantLogoManager.WhiteLabelPaid; } From c8a8ef11d6ed1776a5942cdb6b4aaaae1793f7f6 Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Fri, 9 Sep 2022 15:26:37 +0300 Subject: [PATCH 4/4] refactoring --- .../Api/Settings/WhitelabelController.cs | 44 ++++++------------- 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs index 848ab225dd..71937a06c6 100644 --- a/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs +++ b/web/ASC.Web.Api/Api/Settings/WhitelabelController.cs @@ -68,14 +68,8 @@ public class WhitelabelController : BaseSettingsController DemandWhiteLabelPermission(); - var settings = _settingsManager.Load(); - SaveWhiteLabelSettingsForTenant(settings, null, Tenant.Id, inDto); - - return true; - } - - private void SaveWhiteLabelSettingsForTenant(TenantWhiteLabelSettings settings, IDataStore storage, int tenantId, WhiteLabelRequestsDto inDto) - { + var settings = _settingsManager.Load(); + if (inDto.Logo != null) { var logoDict = new Dictionary(); @@ -85,12 +79,13 @@ public class WhitelabelController : BaseSettingsController logoDict.Add(Int32.Parse(l.Key), l.Value); } - _tenantWhiteLabelSettingsHelper.SetLogo(settings, logoDict, storage); + _tenantWhiteLabelSettingsHelper.SetLogo(settings, logoDict, null); } settings.SetLogoText(inDto.LogoText); - _tenantWhiteLabelSettingsHelper.Save(settings, tenantId, _tenantLogoManager); + _tenantWhiteLabelSettingsHelper.Save(settings, Tenant.Id, _tenantLogoManager); + return true; } ///false @@ -106,25 +101,20 @@ public class WhitelabelController : BaseSettingsController throw new InvalidOperationException("No input files"); } - var settings = _settingsManager.Load(); - SaveWhiteLabelSettingsFromFilesForTenant(settings, null, Tenant.Id); - - return true; - } - - private void SaveWhiteLabelSettingsFromFilesForTenant(TenantWhiteLabelSettings settings, IDataStore storage, int tenantId) - { + var settings = _settingsManager.Load(); + foreach (var f in HttpContext.Request.Form.Files) { var parts = f.FileName.Split('.'); var logoType = (WhiteLabelLogoTypeEnum)Convert.ToInt32(parts[0]); var fileExt = parts[1]; - _tenantWhiteLabelSettingsHelper.SetLogoFromStream(settings, logoType, fileExt, f.OpenReadStream(), storage); + _tenantWhiteLabelSettingsHelper.SetLogoFromStream(settings, logoType, fileExt, f.OpenReadStream(), null); } - _settingsManager.SaveForTenant(settings, tenantId); - } + _settingsManager.SaveForTenant(settings, Tenant.Id); + return true; + } ///false [HttpGet("whitelabel/sizes")] @@ -196,22 +186,16 @@ public class WhitelabelController : BaseSettingsController _permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); DemandWhiteLabelPermission(); - RestoreWhiteLabelOptionsForCurrentTenant(); - - return true; - } - - private void RestoreWhiteLabelOptionsForCurrentTenant() - { var settings = _settingsManager.Load(); _tenantWhiteLabelSettingsHelper.RestoreDefault(settings, _tenantLogoManager, Tenant.Id, null); var tenantInfoSettings = _settingsManager.Load(); _tenantInfoSettingsHelper.RestoreDefaultLogo(tenantInfoSettings, _tenantLogoManager); - _settingsManager.Save(tenantInfoSettings); - } + _settingsManager.Save(tenantInfoSettings); + return true; + } ///false [HttpGet("companywhitelabel")]