mirror of
https://github.com/bitwarden/server.git
synced 2025-02-02 23:41:21 +01:00
Support client version prerelease flag in context and LD targeting (#4994)
* Support client version prerelease flag in context and LD targeting * Use integer instead of Boolean
This commit is contained in:
parent
d6e624d639
commit
21b7c3b73a
@ -39,6 +39,7 @@ public class CurrentContext : ICurrentContext
|
||||
public virtual int? BotScore { get; set; }
|
||||
public virtual string ClientId { get; set; }
|
||||
public virtual Version ClientVersion { get; set; }
|
||||
public virtual bool ClientVersionIsPrerelease { get; set; }
|
||||
public virtual IdentityClientType IdentityClientType { get; set; }
|
||||
public virtual Guid? ServiceAccountOrganizationId { get; set; }
|
||||
|
||||
@ -97,6 +98,11 @@ public class CurrentContext : ICurrentContext
|
||||
{
|
||||
ClientVersion = cVersion;
|
||||
}
|
||||
|
||||
if (httpContext.Request.Headers.TryGetValue("Is-Prerelease", out var clientVersionIsPrerelease))
|
||||
{
|
||||
ClientVersionIsPrerelease = clientVersionIsPrerelease == "1";
|
||||
}
|
||||
}
|
||||
|
||||
public async virtual Task BuildAsync(ClaimsPrincipal user, GlobalSettings globalSettings)
|
||||
|
@ -29,12 +29,13 @@ public interface ICurrentContext
|
||||
int? BotScore { get; set; }
|
||||
string ClientId { get; set; }
|
||||
Version ClientVersion { get; set; }
|
||||
bool ClientVersionIsPrerelease { get; set; }
|
||||
|
||||
Task BuildAsync(HttpContext httpContext, GlobalSettings globalSettings);
|
||||
Task BuildAsync(ClaimsPrincipal user, GlobalSettings globalSettings);
|
||||
|
||||
Task SetContextAsync(ClaimsPrincipal user);
|
||||
|
||||
|
||||
Task<bool> OrganizationUser(Guid orgId);
|
||||
Task<bool> OrganizationAdmin(Guid orgId);
|
||||
Task<bool> OrganizationOwner(Guid orgId);
|
||||
|
@ -20,6 +20,7 @@ public class LaunchDarklyFeatureService : IFeatureService
|
||||
private const string _contextKindServiceAccount = "service-account";
|
||||
|
||||
private const string _contextAttributeClientVersion = "client-version";
|
||||
private const string _contextAttributeClientVersionIsPrerelease = "client-version-is-prerelease";
|
||||
private const string _contextAttributeDeviceType = "device-type";
|
||||
private const string _contextAttributeClientType = "client-type";
|
||||
private const string _contextAttributeOrganizations = "organizations";
|
||||
@ -145,6 +146,7 @@ public class LaunchDarklyFeatureService : IFeatureService
|
||||
if (_currentContext.ClientVersion != null)
|
||||
{
|
||||
builder.Set(_contextAttributeClientVersion, _currentContext.ClientVersion.ToString());
|
||||
builder.Set(_contextAttributeClientVersionIsPrerelease, _currentContext.ClientVersionIsPrerelease);
|
||||
}
|
||||
|
||||
if (_currentContext.DeviceType.HasValue)
|
||||
|
@ -24,6 +24,7 @@ public class LaunchDarklyFeatureServiceTests
|
||||
var currentContext = Substitute.For<ICurrentContext>();
|
||||
currentContext.UserId.Returns(Guid.NewGuid());
|
||||
currentContext.ClientVersion.Returns(new Version(AssemblyHelpers.GetVersion()));
|
||||
currentContext.ClientVersionIsPrerelease.Returns(true);
|
||||
currentContext.DeviceType.Returns(Enums.DeviceType.ChromeBrowser);
|
||||
|
||||
var client = Substitute.For<ILdClient>();
|
||||
|
Loading…
Reference in New Issue
Block a user