mirror of
https://github.com/bitwarden/server.git
synced 2026-01-31 22:23:18 +08:00
* [EC-1070] Add API endpoint to retrieve all policies for the current user The additional API endpoint is required to avoid forcing a full sync call before every login for master password policy enforcement on login. * [EC-1070] Add MasterPasswordPolicyData model * [EC-1070] Move PolicyResponseModel to Core project The response model is used by both the Identity and Api projects. * [EC-1070] Supply master password polices as a custom identity token response * [EC-1070] Include master password policies in 2FA token response * [EC-1070] Add response model to verify-password endpoint that includes master password policies * [AC-1070] Introduce MasterPasswordPolicyResponseModel * [AC-1070] Add policy service method to retrieve a user's master password policy * [AC-1070] User new policy service method - Update BaseRequestValidator - Update AccountsController for /verify-password endpoint - Update VerifyMasterPasswordResponseModel to accept MasterPasswordPolicyData * [AC-1070] Cleanup new policy service method - Use User object instead of Guid - Remove TODO message - Use `PolicyRepository.GetManyByTypeApplicableToUserIdAsync` instead of filtering locally * [AC-1070] Cleanup MasterPasswordPolicy models - Remove default values from both models - Add missing `RequireLower` - Fix mismatched properties in `CombineWith` method - Make properties nullable in response model * [AC-1070] Remove now un-used GET /policies endpoint * [AC-1070] Update policy service method to use GetManyByUserIdAsync * [AC-1070] Ensure existing value is not null before comparison * [AC-1070] Remove redundant VerifyMasterPasswordResponse model * [AC-1070] Fix service typo in constructor
33 lines
916 B
C#
33 lines
916 B
C#
using System.Text.Json;
|
|
using Bit.Core.Entities;
|
|
using Bit.Core.Enums;
|
|
|
|
namespace Bit.Core.Models.Api.Response;
|
|
|
|
public class PolicyResponseModel : ResponseModel
|
|
{
|
|
public PolicyResponseModel(Policy policy, string obj = "policy")
|
|
: base(obj)
|
|
{
|
|
if (policy == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(policy));
|
|
}
|
|
|
|
Id = policy.Id.ToString();
|
|
OrganizationId = policy.OrganizationId.ToString();
|
|
Type = policy.Type;
|
|
Enabled = policy.Enabled;
|
|
if (!string.IsNullOrWhiteSpace(policy.Data))
|
|
{
|
|
Data = JsonSerializer.Deserialize<Dictionary<string, object>>(policy.Data);
|
|
}
|
|
}
|
|
|
|
public string Id { get; set; }
|
|
public string OrganizationId { get; set; }
|
|
public PolicyType Type { get; set; }
|
|
public Dictionary<string, object> Data { get; set; }
|
|
public bool Enabled { get; set; }
|
|
}
|