Skip to content

Commit d23c582

Browse files
authored
Merge branch 'main' into SM-1592-API
2 parents cf80639 + db36c52 commit d23c582

File tree

72 files changed

+2154
-570
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+2154
-570
lines changed

bitwarden_license/src/Commercial.Core/AdminConsole/Services/ProviderService.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ public class ProviderService : IProviderService
3535
{
3636
private static readonly PlanType[] _resellerDisallowedOrganizationTypes = [
3737
PlanType.Free,
38-
PlanType.FamiliesAnnually,
39-
PlanType.FamiliesAnnually2019
38+
PlanType.FamiliesAnnually2025,
39+
PlanType.FamiliesAnnually2019,
40+
PlanType.FamiliesAnnually
4041
];
4142

4243
private readonly IDataProtector _dataProtector;

src/Api/AdminConsole/Controllers/OrganizationIntegrationConfigurationController.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
using Bit.Api.AdminConsole.Models.Request.Organizations;
22
using Bit.Api.AdminConsole.Models.Response.Organizations;
3-
using Bit.Core;
43
using Bit.Core.Context;
54
using Bit.Core.Exceptions;
65
using Bit.Core.Repositories;
7-
using Bit.Core.Utilities;
86
using Microsoft.AspNetCore.Authorization;
97
using Microsoft.AspNetCore.Mvc;
108

119
namespace Bit.Api.AdminConsole.Controllers;
1210

13-
[RequireFeature(FeatureFlagKeys.EventBasedOrganizationIntegrations)]
1411
[Route("organizations/{organizationId:guid}/integrations/{integrationId:guid}/configurations")]
1512
[Authorize("Application")]
1613
public class OrganizationIntegrationConfigurationController(

src/Api/AdminConsole/Controllers/OrganizationIntegrationController.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
using Bit.Api.AdminConsole.Models.Request.Organizations;
22
using Bit.Api.AdminConsole.Models.Response.Organizations;
3-
using Bit.Core;
43
using Bit.Core.Context;
54
using Bit.Core.Exceptions;
65
using Bit.Core.Repositories;
7-
using Bit.Core.Utilities;
86
using Microsoft.AspNetCore.Authorization;
97
using Microsoft.AspNetCore.Mvc;
108

11-
#nullable enable
12-
139
namespace Bit.Api.AdminConsole.Controllers;
1410

15-
[RequireFeature(FeatureFlagKeys.EventBasedOrganizationIntegrations)]
1611
[Route("organizations/{organizationId:guid}/integrations")]
1712
[Authorize("Application")]
1813
public class OrganizationIntegrationController(

src/Api/AdminConsole/Controllers/PoliciesController.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,29 +209,22 @@ public async Task<PolicyResponseModel> Put(Guid orgId, PolicyType type, [FromBod
209209
throw new NotFoundException();
210210
}
211211

212-
if (type != model.Type)
213-
{
214-
throw new BadRequestException("Mismatched policy type");
215-
}
216-
217-
var policyUpdate = await model.ToPolicyUpdateAsync(orgId, _currentContext);
212+
var policyUpdate = await model.ToPolicyUpdateAsync(orgId, type, _currentContext);
218213
var policy = await _savePolicyCommand.SaveAsync(policyUpdate);
219214
return new PolicyResponseModel(policy);
220215
}
221216

222-
223217
[HttpPut("{type}/vnext")]
224218
[RequireFeatureAttribute(FeatureFlagKeys.CreateDefaultLocation)]
225219
[Authorize<ManagePoliciesRequirement>]
226-
public async Task<PolicyResponseModel> PutVNext(Guid orgId, [FromBody] SavePolicyRequest model)
220+
public async Task<PolicyResponseModel> PutVNext(Guid orgId, PolicyType type, [FromBody] SavePolicyRequest model)
227221
{
228-
var savePolicyRequest = await model.ToSavePolicyModelAsync(orgId, _currentContext);
222+
var savePolicyRequest = await model.ToSavePolicyModelAsync(orgId, type, _currentContext);
229223

230224
var policy = _featureService.IsEnabled(FeatureFlagKeys.PolicyValidatorsRefactor) ?
231225
await _vNextSavePolicyCommand.SaveAsync(savePolicyRequest) :
232226
await _savePolicyCommand.VNextSaveAsync(savePolicyRequest);
233227

234228
return new PolicyResponseModel(policy);
235229
}
236-
237230
}

src/Api/AdminConsole/Controllers/SlackIntegrationController.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
using System.Text.Json;
22
using Bit.Api.AdminConsole.Models.Response.Organizations;
3-
using Bit.Core;
43
using Bit.Core.AdminConsole.Entities;
54
using Bit.Core.AdminConsole.Models.Data.EventIntegrations;
65
using Bit.Core.Context;
76
using Bit.Core.Enums;
87
using Bit.Core.Exceptions;
98
using Bit.Core.Repositories;
109
using Bit.Core.Services;
11-
using Bit.Core.Utilities;
1210
using Microsoft.AspNetCore.Authorization;
1311
using Microsoft.AspNetCore.Mvc;
1412

1513
namespace Bit.Api.AdminConsole.Controllers;
1614

17-
[RequireFeature(FeatureFlagKeys.EventBasedOrganizationIntegrations)]
1815
[Route("organizations")]
1916
[Authorize("Application")]
2017
public class SlackIntegrationController(

src/Api/AdminConsole/Controllers/TeamsIntegrationController.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
using System.Text.Json;
22
using Bit.Api.AdminConsole.Models.Response.Organizations;
3-
using Bit.Core;
43
using Bit.Core.AdminConsole.Entities;
54
using Bit.Core.AdminConsole.Models.Data.EventIntegrations;
65
using Bit.Core.Context;
76
using Bit.Core.Enums;
87
using Bit.Core.Exceptions;
98
using Bit.Core.Repositories;
109
using Bit.Core.Services;
11-
using Bit.Core.Utilities;
1210
using Microsoft.AspNetCore.Authorization;
1311
using Microsoft.AspNetCore.Mvc;
1412
using Microsoft.Bot.Builder;
1513
using Microsoft.Bot.Builder.Integration.AspNet.Core;
1614

1715
namespace Bit.Api.AdminConsole.Controllers;
1816

19-
[RequireFeature(FeatureFlagKeys.EventBasedOrganizationIntegrations)]
2017
[Route("organizations")]
2118
[Authorize("Application")]
2219
public class TeamsIntegrationController(

src/Api/AdminConsole/Models/Request/PolicyRequestModel.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,18 @@ namespace Bit.Api.AdminConsole.Models.Request;
99

1010
public class PolicyRequestModel
1111
{
12-
[Required]
13-
public PolicyType? Type { get; set; }
1412
[Required]
1513
public bool? Enabled { get; set; }
1614
public Dictionary<string, object>? Data { get; set; }
1715

18-
public async Task<PolicyUpdate> ToPolicyUpdateAsync(Guid organizationId, ICurrentContext currentContext)
16+
public async Task<PolicyUpdate> ToPolicyUpdateAsync(Guid organizationId, PolicyType type, ICurrentContext currentContext)
1917
{
20-
var serializedData = PolicyDataValidator.ValidateAndSerialize(Data, Type!.Value);
18+
var serializedData = PolicyDataValidator.ValidateAndSerialize(Data, type);
2119
var performedBy = new StandardUser(currentContext.UserId!.Value, await currentContext.OrganizationOwner(organizationId));
2220

2321
return new()
2422
{
25-
Type = Type!.Value,
23+
Type = type,
2624
OrganizationId = organizationId,
2725
Data = serializedData,
2826
Enabled = Enabled.GetValueOrDefault(),

src/Api/AdminConsole/Models/Request/SavePolicyRequest.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.ComponentModel.DataAnnotations;
2+
using Bit.Core.AdminConsole.Enums;
23
using Bit.Core.AdminConsole.Models.Data;
34
using Bit.Core.AdminConsole.OrganizationFeatures.Policies.Models;
45
using Bit.Core.AdminConsole.Utilities;
@@ -13,10 +14,10 @@ public class SavePolicyRequest
1314

1415
public Dictionary<string, object>? Metadata { get; set; }
1516

16-
public async Task<SavePolicyModel> ToSavePolicyModelAsync(Guid organizationId, ICurrentContext currentContext)
17+
public async Task<SavePolicyModel> ToSavePolicyModelAsync(Guid organizationId, PolicyType type, ICurrentContext currentContext)
1718
{
18-
var policyUpdate = await Policy.ToPolicyUpdateAsync(organizationId, currentContext);
19-
var metadata = PolicyDataValidator.ValidateAndDeserializeMetadata(Metadata, Policy.Type!.Value);
19+
var policyUpdate = await Policy.ToPolicyUpdateAsync(organizationId, type, currentContext);
20+
var metadata = PolicyDataValidator.ValidateAndDeserializeMetadata(Metadata, type);
2021
var performedBy = new StandardUser(currentContext.UserId!.Value, await currentContext.OrganizationOwner(organizationId));
2122

2223
return new SavePolicyModel(policyUpdate, performedBy, metadata);

src/Api/AdminConsole/Models/Response/Organizations/OrganizationIntegrationConfigurationResponseModel.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,13 @@
22
using Bit.Core.Enums;
33
using Bit.Core.Models.Api;
44

5-
#nullable enable
6-
75
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
86

97
public class OrganizationIntegrationConfigurationResponseModel : ResponseModel
108
{
119
public OrganizationIntegrationConfigurationResponseModel(OrganizationIntegrationConfiguration organizationIntegrationConfiguration, string obj = "organizationIntegrationConfiguration")
1210
: base(obj)
1311
{
14-
ArgumentNullException.ThrowIfNull(organizationIntegrationConfiguration);
15-
1612
Id = organizationIntegrationConfiguration.Id;
1713
Configuration = organizationIntegrationConfiguration.Configuration;
1814
CreationDate = organizationIntegrationConfiguration.CreationDate;

src/Billing/Controllers/FreshsalesController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ private static bool TryGetPlanName(PlanType planType, out string planName)
158158
planName = "Free";
159159
return true;
160160
case PlanType.FamiliesAnnually:
161+
case PlanType.FamiliesAnnually2025:
161162
case PlanType.FamiliesAnnually2019:
162163
planName = "Families";
163164
return true;

0 commit comments

Comments
 (0)