Skip to content

Commit 59cdaa1

Browse files
committed
dotnet format
1 parent 0bb72ca commit 59cdaa1

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

src/Api/Vault/Controllers/SyncController.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using Bit.Core;
33
using Bit.Core.AdminConsole.Entities;
44
using Bit.Core.AdminConsole.Enums.Provider;
5+
using Bit.Core.AdminConsole.OrganizationFeatures.Policies;
6+
using Bit.Core.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements;
57
using Bit.Core.AdminConsole.Repositories;
68
using Bit.Core.Context;
79
using Bit.Core.Entities;
@@ -36,6 +38,7 @@ public class SyncController : Controller
3638
private readonly ICurrentContext _currentContext;
3739
private readonly Version _sshKeyCipherMinimumVersion = new(Constants.SSHKeyCipherMinimumVersion);
3840
private readonly IFeatureService _featureService;
41+
private readonly IPolicyRequirementQuery _policyRequirementQuery;
3942

4043
public SyncController(
4144
IUserService userService,
@@ -49,7 +52,8 @@ public SyncController(
4952
ISendRepository sendRepository,
5053
GlobalSettings globalSettings,
5154
ICurrentContext currentContext,
52-
IFeatureService featureService)
55+
IFeatureService featureService,
56+
IPolicyRequirementQuery policyRequirementQuery)
5357
{
5458
_userService = userService;
5559
_folderRepository = folderRepository;
@@ -63,6 +67,7 @@ public SyncController(
6367
_globalSettings = globalSettings;
6468
_currentContext = currentContext;
6569
_featureService = featureService;
70+
_policyRequirementQuery = policyRequirementQuery;
6671
}
6772

6873
[HttpGet("")]
@@ -74,6 +79,9 @@ public async Task<SyncResponseModel> Get([FromQuery] bool excludeDomains = false
7479
throw new BadRequestException("User not found.");
7580
}
7681

82+
var sendReq = await _policyRequirementQuery.GetAsync<SendPolicyRequirement>(user.Id);
83+
var testReq = await _policyRequirementQuery.GetAsync<TestPolicyRequirement>(user.Id);
84+
7785
var organizationUserDetails = await _organizationUserRepository.GetManyDetailsByUserAsync(user.Id,
7886
OrganizationUserStatusType.Confirmed);
7987
var providerUserDetails = await _providerUserRepository.GetManyDetailsByUserAsync(user.Id,
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using Bit.Core.AdminConsole.Enums;
2+
using Bit.Core.AdminConsole.Models.Data.Organizations.Policies;
3+
using Bit.Core.Settings;
4+
5+
namespace Bit.Core.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements;
6+
7+
public class SendPolicyRequirement : IPolicyRequirement
8+
{
9+
public bool DisableSend { get; init; }
10+
public bool DisableHideEmail { get; init; }
11+
12+
public static SendPolicyRequirement Create(IEnumerable<PolicyDetails> userPolicyDetails)
13+
{
14+
var filteredPolicies = userPolicyDetails
15+
.ExcludeOwnersAndAdmins()
16+
.ExcludeRevokedAndInvitedUsers()
17+
.ToList();
18+
19+
return new SendPolicyRequirement
20+
{
21+
DisableSend = filteredPolicies
22+
.GetPolicyType(PolicyType.DisableSend)
23+
.Any(),
24+
25+
DisableHideEmail = filteredPolicies
26+
.GetPolicyType(PolicyType.SendOptions)
27+
.Select(up => up.GetDataModel<SendOptionsPolicyData>())
28+
.Any(d => d.DisableHideEmail)
29+
};
30+
}
31+
}
32+
33+
public class TestPolicyRequirement : IPolicyRequirement
34+
{
35+
public Guid OrganizationId { get; init; }
36+
public Guid InstallationId { get; init; }
37+
public static TestPolicyRequirement Create(IGlobalSettings globalSettings, IEnumerable<PolicyDetails> policyDetails)
38+
=> new() { OrganizationId = policyDetails.First().OrganizationId, InstallationId = globalSettings.Installation.Id };
39+
}

test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirementQueryTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using Bit.Core.AdminConsole.OrganizationFeatures.Policies.Implementations;
33
using Bit.Core.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements;
44
using Bit.Core.AdminConsole.Repositories;
5-
using Bit.Test.Common.AutoFixture;
65
using Bit.Test.Common.AutoFixture.Attributes;
76
using NSubstitute;
87
using Xunit;

0 commit comments

Comments
 (0)