From 303b9a787535310470e9edc40ae8a8ad9922578d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 28 Aug 2020 11:22:19 -0400 Subject: [PATCH] Allow org update api on self hosted for identifier only (#898) --- src/Api/Controllers/OrganizationsController.cs | 7 +++---- .../Organizations/OrganizationUpdateRequestModel.cs | 12 ++++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Api/Controllers/OrganizationsController.cs b/src/Api/Controllers/OrganizationsController.cs index 637ee6d27a..2485c3522c 100644 --- a/src/Api/Controllers/OrganizationsController.cs +++ b/src/Api/Controllers/OrganizationsController.cs @@ -177,7 +177,6 @@ namespace Bit.Api.Controllers [HttpPut("{id}")] [HttpPost("{id}")] - [SelfHosted(NotSelfHostedOnly = true)] public async Task Put(string id, [FromBody]OrganizationUpdateRequestModel model) { var orgIdGuid = new Guid(id); @@ -192,10 +191,10 @@ namespace Bit.Api.Controllers throw new NotFoundException(); } - var updatebilling = model.BusinessName != organization.BusinessName || - model.BillingEmail != organization.BillingEmail; + var updatebilling = !_globalSettings.SelfHosted && (model.BusinessName != organization.BusinessName || + model.BillingEmail != organization.BillingEmail); - await _organizationService.UpdateAsync(model.ToOrganization(organization), updatebilling); + await _organizationService.UpdateAsync(model.ToOrganization(organization, _globalSettings), updatebilling); return new OrganizationResponseModel(organization); } diff --git a/src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs b/src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs index 4f92e8d66e..d22974ed59 100644 --- a/src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs +++ b/src/Core/Models/Api/Request/Organizations/OrganizationUpdateRequestModel.cs @@ -17,11 +17,15 @@ namespace Bit.Core.Models.Api [StringLength(50)] public string BillingEmail { get; set; } - public virtual Organization ToOrganization(Organization existingOrganization) + public virtual Organization ToOrganization(Organization existingOrganization, GlobalSettings globalSettings) { - existingOrganization.Name = Name; - existingOrganization.BusinessName = BusinessName; - existingOrganization.BillingEmail = BillingEmail?.ToLowerInvariant()?.Trim(); + if (!globalSettings.SelfHosted) + { + // These items come from the license file + existingOrganization.Name = Name; + existingOrganization.BusinessName = BusinessName; + existingOrganization.BillingEmail = BillingEmail?.ToLowerInvariant()?.Trim(); + } existingOrganization.Identifier = Identifier; return existingOrganization; }