1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 15:42:48 -05:00

sync org policies to client devices

This commit is contained in:
Kyle Spearrin
2020-01-28 15:33:32 -05:00
parent 82be2ae06b
commit 725522128c
7 changed files with 63 additions and 2 deletions

View File

@ -18,7 +18,8 @@ namespace Bit.Core.Models.Api
IEnumerable<CollectionDetails> collections,
IEnumerable<CipherDetails> ciphers,
IDictionary<Guid, IGrouping<Guid, CollectionCipher>> collectionCiphersDict,
bool excludeDomains)
bool excludeDomains,
IEnumerable<Policy> policies)
: base("sync")
{
Profile = new ProfileResponseModel(user, organizationUserDetails, userTwoFactorEnabled);
@ -27,6 +28,7 @@ namespace Bit.Core.Models.Api
Collections = collections?.Select(
c => new CollectionDetailsResponseModel(c)) ?? new List<CollectionDetailsResponseModel>();
Domains = excludeDomains ? null : new DomainsResponseModel(user, false);
Policies = policies.Select(p => new PolicyResponseModel(p));
}
public ProfileResponseModel Profile { get; set; }
@ -34,5 +36,6 @@ namespace Bit.Core.Models.Api
public IEnumerable<CollectionDetailsResponseModel> Collections { get; set; }
public IEnumerable<CipherDetailsResponseModel> Ciphers { get; set; }
public DomainsResponseModel Domains { get; set; }
public IEnumerable<PolicyResponseModel> Policies { get; set; }
}
}

View File

@ -10,5 +10,6 @@ namespace Bit.Core.Repositories
{
Task<Policy> GetByOrganizationIdTypeAsync(Guid organizationId, PolicyType type);
Task<ICollection<Policy>> GetManyByOrganizationIdAsync(Guid organizationId);
Task<ICollection<Policy>> GetManyByUserIdAsync(Guid userId);
}
}

View File

@ -44,5 +44,18 @@ namespace Bit.Core.Repositories.SqlServer
return results.ToList();
}
}
public async Task<ICollection<Policy>> GetManyByUserIdAsync(Guid userId)
{
using(var connection = new SqlConnection(ConnectionString))
{
var results = await connection.QueryAsync<Policy>(
$"[{Schema}].[{Table}_ReadByUserId]",
new { UserId = userId },
commandType: CommandType.StoredProcedure);
return results.ToList();
}
}
}
}