mirror of
https://github.com/bitwarden/server.git
synced 2025-07-21 17:41:40 -05:00
[NO LOGIC] [PM-21100] Organize billing organization code (#6099)
* [NO LOGIC] Organize Billing organization code * Run dotnet format
This commit is contained in:
@ -8,7 +8,7 @@ using Bit.Admin.Models;
|
|||||||
using Bit.Admin.Utilities;
|
using Bit.Admin.Utilities;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.BitStripe;
|
using Bit.Core.Models.BitStripe;
|
||||||
using Bit.Core.Platform.Installations;
|
using Bit.Core.Platform.Installations;
|
||||||
@ -27,7 +27,7 @@ public class ToolsController : Controller
|
|||||||
{
|
{
|
||||||
private readonly GlobalSettings _globalSettings;
|
private readonly GlobalSettings _globalSettings;
|
||||||
private readonly IOrganizationRepository _organizationRepository;
|
private readonly IOrganizationRepository _organizationRepository;
|
||||||
private readonly ICloudGetOrganizationLicenseQuery _cloudGetOrganizationLicenseQuery;
|
private readonly IGetCloudOrganizationLicenseQuery _getCloudOrganizationLicenseQuery;
|
||||||
private readonly IUserService _userService;
|
private readonly IUserService _userService;
|
||||||
private readonly ITransactionRepository _transactionRepository;
|
private readonly ITransactionRepository _transactionRepository;
|
||||||
private readonly IInstallationRepository _installationRepository;
|
private readonly IInstallationRepository _installationRepository;
|
||||||
@ -40,7 +40,7 @@ public class ToolsController : Controller
|
|||||||
public ToolsController(
|
public ToolsController(
|
||||||
GlobalSettings globalSettings,
|
GlobalSettings globalSettings,
|
||||||
IOrganizationRepository organizationRepository,
|
IOrganizationRepository organizationRepository,
|
||||||
ICloudGetOrganizationLicenseQuery cloudGetOrganizationLicenseQuery,
|
IGetCloudOrganizationLicenseQuery getCloudOrganizationLicenseQuery,
|
||||||
IUserService userService,
|
IUserService userService,
|
||||||
ITransactionRepository transactionRepository,
|
ITransactionRepository transactionRepository,
|
||||||
IInstallationRepository installationRepository,
|
IInstallationRepository installationRepository,
|
||||||
@ -52,7 +52,7 @@ public class ToolsController : Controller
|
|||||||
{
|
{
|
||||||
_globalSettings = globalSettings;
|
_globalSettings = globalSettings;
|
||||||
_organizationRepository = organizationRepository;
|
_organizationRepository = organizationRepository;
|
||||||
_cloudGetOrganizationLicenseQuery = cloudGetOrganizationLicenseQuery;
|
_getCloudOrganizationLicenseQuery = getCloudOrganizationLicenseQuery;
|
||||||
_userService = userService;
|
_userService = userService;
|
||||||
_transactionRepository = transactionRepository;
|
_transactionRepository = transactionRepository;
|
||||||
_installationRepository = installationRepository;
|
_installationRepository = installationRepository;
|
||||||
@ -320,7 +320,7 @@ public class ToolsController : Controller
|
|||||||
|
|
||||||
if (organization != null)
|
if (organization != null)
|
||||||
{
|
{
|
||||||
var license = await _cloudGetOrganizationLicenseQuery.GetLicenseAsync(organization,
|
var license = await _getCloudOrganizationLicenseQuery.GetLicenseAsync(organization,
|
||||||
model.InstallationId.Value, model.Version);
|
model.InstallationId.Value, model.Version);
|
||||||
var ms = new MemoryStream();
|
var ms = new MemoryStream();
|
||||||
await JsonSerializer.SerializeAsync(ms, license, JsonHelpers.Indented);
|
await JsonSerializer.SerializeAsync(ms, license, JsonHelpers.Indented);
|
||||||
|
@ -5,7 +5,7 @@ using System.Text.Json.Serialization;
|
|||||||
using Bit.Api.Models.Response;
|
using Bit.Api.Models.Response;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.Models.StaticStore;
|
using Bit.Core.Models.StaticStore;
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Models.Business;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Api.OrganizationLicenses;
|
using Bit.Core.Models.Api.OrganizationLicenses;
|
||||||
@ -23,7 +24,7 @@ public class LicensesController : Controller
|
|||||||
private readonly IUserRepository _userRepository;
|
private readonly IUserRepository _userRepository;
|
||||||
private readonly IUserService _userService;
|
private readonly IUserService _userService;
|
||||||
private readonly IOrganizationRepository _organizationRepository;
|
private readonly IOrganizationRepository _organizationRepository;
|
||||||
private readonly ICloudGetOrganizationLicenseQuery _cloudGetOrganizationLicenseQuery;
|
private readonly IGetCloudOrganizationLicenseQuery _getCloudOrganizationLicenseQuery;
|
||||||
private readonly IValidateBillingSyncKeyCommand _validateBillingSyncKeyCommand;
|
private readonly IValidateBillingSyncKeyCommand _validateBillingSyncKeyCommand;
|
||||||
private readonly ICurrentContext _currentContext;
|
private readonly ICurrentContext _currentContext;
|
||||||
|
|
||||||
@ -31,14 +32,14 @@ public class LicensesController : Controller
|
|||||||
IUserRepository userRepository,
|
IUserRepository userRepository,
|
||||||
IUserService userService,
|
IUserService userService,
|
||||||
IOrganizationRepository organizationRepository,
|
IOrganizationRepository organizationRepository,
|
||||||
ICloudGetOrganizationLicenseQuery cloudGetOrganizationLicenseQuery,
|
IGetCloudOrganizationLicenseQuery getCloudOrganizationLicenseQuery,
|
||||||
IValidateBillingSyncKeyCommand validateBillingSyncKeyCommand,
|
IValidateBillingSyncKeyCommand validateBillingSyncKeyCommand,
|
||||||
ICurrentContext currentContext)
|
ICurrentContext currentContext)
|
||||||
{
|
{
|
||||||
_userRepository = userRepository;
|
_userRepository = userRepository;
|
||||||
_userService = userService;
|
_userService = userService;
|
||||||
_organizationRepository = organizationRepository;
|
_organizationRepository = organizationRepository;
|
||||||
_cloudGetOrganizationLicenseQuery = cloudGetOrganizationLicenseQuery;
|
_getCloudOrganizationLicenseQuery = getCloudOrganizationLicenseQuery;
|
||||||
_validateBillingSyncKeyCommand = validateBillingSyncKeyCommand;
|
_validateBillingSyncKeyCommand = validateBillingSyncKeyCommand;
|
||||||
_currentContext = currentContext;
|
_currentContext = currentContext;
|
||||||
}
|
}
|
||||||
@ -84,7 +85,7 @@ public class LicensesController : Controller
|
|||||||
throw new BadRequestException("Invalid Billing Sync Key");
|
throw new BadRequestException("Invalid Billing Sync Key");
|
||||||
}
|
}
|
||||||
|
|
||||||
var license = await _cloudGetOrganizationLicenseQuery.GetLicenseAsync(organization, _currentContext.InstallationId.Value);
|
var license = await _getCloudOrganizationLicenseQuery.GetLicenseAsync(organization, _currentContext.InstallationId.Value);
|
||||||
return license;
|
return license;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,8 @@ using Bit.Api.Billing.Models.Responses;
|
|||||||
using Bit.Api.Billing.Queries.Organizations;
|
using Bit.Api.Billing.Queries.Organizations;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Models;
|
||||||
using Bit.Core.Billing.Models.Sales;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Providers.Services;
|
using Bit.Core.Billing.Providers.Services;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
|
@ -9,12 +9,12 @@ using Bit.Api.Models.Request.Organizations;
|
|||||||
using Bit.Api.Models.Response;
|
using Bit.Api.Models.Response;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Constants;
|
using Bit.Core.Billing.Constants;
|
||||||
using Bit.Core.Billing.Entities;
|
|
||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Models;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Entities;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
|
using Bit.Core.Billing.Organizations.Repositories;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Repositories;
|
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
@ -39,7 +39,7 @@ public class OrganizationsController(
|
|||||||
IUserService userService,
|
IUserService userService,
|
||||||
IPaymentService paymentService,
|
IPaymentService paymentService,
|
||||||
ICurrentContext currentContext,
|
ICurrentContext currentContext,
|
||||||
ICloudGetOrganizationLicenseQuery cloudGetOrganizationLicenseQuery,
|
IGetCloudOrganizationLicenseQuery getCloudOrganizationLicenseQuery,
|
||||||
GlobalSettings globalSettings,
|
GlobalSettings globalSettings,
|
||||||
ILicensingService licensingService,
|
ILicensingService licensingService,
|
||||||
IUpdateSecretsManagerSubscriptionCommand updateSecretsManagerSubscriptionCommand,
|
IUpdateSecretsManagerSubscriptionCommand updateSecretsManagerSubscriptionCommand,
|
||||||
@ -98,7 +98,7 @@ public class OrganizationsController(
|
|||||||
}
|
}
|
||||||
|
|
||||||
var org = await organizationRepository.GetByIdAsync(id);
|
var org = await organizationRepository.GetByIdAsync(id);
|
||||||
var license = await cloudGetOrganizationLicenseQuery.GetLicenseAsync(org, installationId);
|
var license = await getCloudOrganizationLicenseQuery.GetLicenseAsync(org, installationId);
|
||||||
if (license == null)
|
if (license == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
|
||||||
namespace Bit.Api.Billing.Models.Responses;
|
namespace Bit.Api.Billing.Models.Responses;
|
||||||
|
|
||||||
|
@ -5,8 +5,9 @@ using Bit.Api.AdminConsole.Models.Response.Organizations;
|
|||||||
using Bit.Api.Models.Request;
|
using Bit.Api.Models.Request;
|
||||||
using Bit.Api.Models.Request.Organizations;
|
using Bit.Api.Models.Request.Organizations;
|
||||||
using Bit.Api.Utilities;
|
using Bit.Api.Utilities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Commands;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
@ -25,7 +26,7 @@ namespace Bit.Api.Controllers.SelfHosted;
|
|||||||
public class SelfHostedOrganizationLicensesController : Controller
|
public class SelfHostedOrganizationLicensesController : Controller
|
||||||
{
|
{
|
||||||
private readonly ICurrentContext _currentContext;
|
private readonly ICurrentContext _currentContext;
|
||||||
private readonly ISelfHostedGetOrganizationLicenseQuery _selfHostedGetOrganizationLicenseQuery;
|
private readonly IGetSelfHostedOrganizationLicenseQuery _getSelfHostedOrganizationLicenseQuery;
|
||||||
private readonly IOrganizationConnectionRepository _organizationConnectionRepository;
|
private readonly IOrganizationConnectionRepository _organizationConnectionRepository;
|
||||||
private readonly IOrganizationService _organizationService;
|
private readonly IOrganizationService _organizationService;
|
||||||
private readonly IOrganizationRepository _organizationRepository;
|
private readonly IOrganizationRepository _organizationRepository;
|
||||||
@ -34,7 +35,7 @@ public class SelfHostedOrganizationLicensesController : Controller
|
|||||||
|
|
||||||
public SelfHostedOrganizationLicensesController(
|
public SelfHostedOrganizationLicensesController(
|
||||||
ICurrentContext currentContext,
|
ICurrentContext currentContext,
|
||||||
ISelfHostedGetOrganizationLicenseQuery selfHostedGetOrganizationLicenseQuery,
|
IGetSelfHostedOrganizationLicenseQuery getSelfHostedOrganizationLicenseQuery,
|
||||||
IOrganizationConnectionRepository organizationConnectionRepository,
|
IOrganizationConnectionRepository organizationConnectionRepository,
|
||||||
IOrganizationService organizationService,
|
IOrganizationService organizationService,
|
||||||
IOrganizationRepository organizationRepository,
|
IOrganizationRepository organizationRepository,
|
||||||
@ -42,7 +43,7 @@ public class SelfHostedOrganizationLicensesController : Controller
|
|||||||
IUpdateOrganizationLicenseCommand updateOrganizationLicenseCommand)
|
IUpdateOrganizationLicenseCommand updateOrganizationLicenseCommand)
|
||||||
{
|
{
|
||||||
_currentContext = currentContext;
|
_currentContext = currentContext;
|
||||||
_selfHostedGetOrganizationLicenseQuery = selfHostedGetOrganizationLicenseQuery;
|
_getSelfHostedOrganizationLicenseQuery = getSelfHostedOrganizationLicenseQuery;
|
||||||
_organizationConnectionRepository = organizationConnectionRepository;
|
_organizationConnectionRepository = organizationConnectionRepository;
|
||||||
_organizationService = organizationService;
|
_organizationService = organizationService;
|
||||||
_organizationRepository = organizationRepository;
|
_organizationRepository = organizationRepository;
|
||||||
@ -120,7 +121,7 @@ public class SelfHostedOrganizationLicensesController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
var license =
|
var license =
|
||||||
await _selfHostedGetOrganizationLicenseQuery.GetLicenseAsync(selfHostedOrganizationDetails, billingSyncConnection);
|
await _getSelfHostedOrganizationLicenseQuery.GetLicenseAsync(selfHostedOrganizationDetails, billingSyncConnection);
|
||||||
var currentOrganization = await _organizationRepository.GetByLicenseKeyAsync(license.LicenseKey);
|
var currentOrganization = await _organizationRepository.GetByLicenseKeyAsync(license.LicenseKey);
|
||||||
|
|
||||||
await _updateOrganizationLicenseCommand.UpdateLicenseAsync(selfHostedOrganizationDetails, license, currentOrganization);
|
await _updateOrganizationLicenseCommand.UpdateLicenseAsync(selfHostedOrganizationDetails, license, currentOrganization);
|
||||||
|
@ -4,7 +4,7 @@ using System.Text.Json;
|
|||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
|
@ -6,7 +6,7 @@ using Bit.Core.AdminConsole.Enums;
|
|||||||
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
||||||
using Bit.Core.Auth.Entities;
|
using Bit.Core.Auth.Entities;
|
||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ using Bit.Core.AdminConsole.Entities;
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.Services;
|
using Bit.Core.AdminConsole.Services;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Sales;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Services;
|
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.Models.Business;
|
using Bit.Core.AdminConsole.Models.Business;
|
||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
@ -20,7 +20,7 @@ using Bit.Core.Auth.Repositories;
|
|||||||
using Bit.Core.Billing.Constants;
|
using Bit.Core.Billing.Constants;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Extensions;
|
using Bit.Core.Billing.Extensions;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
|
@ -3,7 +3,7 @@ using Bit.Core.AdminConsole.Entities;
|
|||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Licenses;
|
using Bit.Core.Billing.Licenses;
|
||||||
using Bit.Core.Billing.Licenses.Extensions;
|
using Bit.Core.Billing.Licenses.Extensions;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
using Bit.Core.Billing.Caches;
|
using Bit.Core.Billing.Caches;
|
||||||
using Bit.Core.Billing.Caches.Implementations;
|
using Bit.Core.Billing.Caches.Implementations;
|
||||||
using Bit.Core.Billing.Licenses.Extensions;
|
using Bit.Core.Billing.Licenses.Extensions;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses;
|
using Bit.Core.Billing.Organizations.Commands;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.SelfHosted;
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Payment;
|
using Bit.Core.Billing.Payment;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
@ -37,8 +37,8 @@ public static class ServiceCollectionExtensions
|
|||||||
|
|
||||||
private static void AddOrganizationLicenseCommandsQueries(this IServiceCollection services)
|
private static void AddOrganizationLicenseCommandsQueries(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddScoped<ICloudGetOrganizationLicenseQuery, CloudGetOrganizationLicenseQuery>();
|
services.AddScoped<IGetCloudOrganizationLicenseQuery, GetCloudOrganizationLicenseQuery>();
|
||||||
services.AddScoped<ISelfHostedGetOrganizationLicenseQuery, SelfHostedGetOrganizationLicenseQuery>();
|
services.AddScoped<IGetSelfHostedOrganizationLicenseQuery, GetSelfHostedOrganizationLicenseQuery>();
|
||||||
services.AddScoped<IUpdateOrganizationLicenseCommand, UpdateOrganizationLicenseCommand>();
|
services.AddScoped<IUpdateOrganizationLicenseCommand, UpdateOrganizationLicenseCommand>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
|
||||||
using Bit.Core.Billing.Models.Business;
|
|
||||||
using Bit.Core.Entities;
|
|
||||||
|
|
||||||
namespace Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
|
||||||
|
|
||||||
public interface ICloudGetOrganizationLicenseQuery
|
|
||||||
{
|
|
||||||
Task<OrganizationLicense> GetLicenseAsync(Organization organization, Guid installationId,
|
|
||||||
int? version = null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface ISelfHostedGetOrganizationLicenseQuery
|
|
||||||
{
|
|
||||||
Task<OrganizationLicense> GetLicenseAsync(Organization organization, OrganizationConnection billingSyncConnection);
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
#nullable enable
|
|
||||||
|
|
||||||
using Bit.Core.AdminConsole.Entities;
|
|
||||||
using Bit.Core.Billing.Models.Business;
|
|
||||||
using Bit.Core.Models.Data.Organizations;
|
|
||||||
|
|
||||||
namespace Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
|
||||||
|
|
||||||
public interface IUpdateOrganizationLicenseCommand
|
|
||||||
{
|
|
||||||
Task UpdateLicenseAsync(SelfHostedOrganizationDetails selfHostedOrganization,
|
|
||||||
OrganizationLicense license, Organization? currentOrganizationUsingLicenseKey);
|
|
||||||
}
|
|
@ -1,9 +1,6 @@
|
|||||||
#nullable enable
|
using System.Text.Json;
|
||||||
|
|
||||||
using System.Text.Json;
|
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
@ -11,7 +8,13 @@ using Bit.Core.Services;
|
|||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
using Bit.Core.Utilities;
|
using Bit.Core.Utilities;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses;
|
namespace Bit.Core.Billing.Organizations.Commands;
|
||||||
|
|
||||||
|
public interface IUpdateOrganizationLicenseCommand
|
||||||
|
{
|
||||||
|
Task UpdateLicenseAsync(SelfHostedOrganizationDetails selfHostedOrganization,
|
||||||
|
OrganizationLicense license, Organization? currentOrganizationUsingLicenseKey);
|
||||||
|
}
|
||||||
|
|
||||||
public class UpdateOrganizationLicenseCommand : IUpdateOrganizationLicenseCommand
|
public class UpdateOrganizationLicenseCommand : IUpdateOrganizationLicenseCommand
|
||||||
{
|
{
|
@ -1,9 +1,7 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Utilities;
|
using Bit.Core.Utilities;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Entities;
|
namespace Bit.Core.Billing.Organizations.Entities;
|
||||||
|
|
||||||
#nullable enable
|
|
||||||
|
|
||||||
public class OrganizationInstallation : ITableObject<Guid>
|
public class OrganizationInstallation : ITableObject<Guid>
|
||||||
{
|
{
|
@ -10,12 +10,13 @@ using System.Text.Json.Serialization;
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Licenses.Extensions;
|
using Bit.Core.Billing.Licenses.Extensions;
|
||||||
|
using Bit.Core.Billing.Models.Business;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Models.Business;
|
namespace Bit.Core.Billing.Organizations.Models;
|
||||||
|
|
||||||
public class OrganizationLicense : ILicense
|
public class OrganizationLicense : ILicense
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
namespace Bit.Core.Billing.Models;
|
namespace Bit.Core.Billing.Organizations.Models;
|
||||||
|
|
||||||
public record OrganizationMetadata(
|
public record OrganizationMetadata(
|
||||||
bool IsEligibleForSelfHost,
|
bool IsEligibleForSelfHost,
|
@ -1,11 +1,11 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Constants;
|
using Bit.Core.Billing.Constants;
|
||||||
|
using Bit.Core.Billing.Models;
|
||||||
|
using Bit.Core.Billing.Models.Sales;
|
||||||
using Bit.Core.Billing.Tax.Models;
|
using Bit.Core.Billing.Tax.Models;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Models.Sales;
|
namespace Bit.Core.Billing.Organizations.Models;
|
||||||
|
|
||||||
#nullable enable
|
|
||||||
|
|
||||||
public class OrganizationSale
|
public class OrganizationSale
|
||||||
{
|
{
|
@ -4,7 +4,7 @@
|
|||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Models.Business;
|
namespace Bit.Core.Billing.Organizations.Models;
|
||||||
|
|
||||||
public class SponsorOrganizationSubscriptionUpdate : SubscriptionUpdate
|
public class SponsorOrganizationSubscriptionUpdate : SubscriptionUpdate
|
||||||
{
|
{
|
@ -3,8 +3,7 @@
|
|||||||
|
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
@ -12,9 +11,15 @@ using Bit.Core.Models.Business;
|
|||||||
using Bit.Core.Platform.Installations;
|
using Bit.Core.Platform.Installations;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses;
|
namespace Bit.Core.Billing.Organizations.Queries;
|
||||||
|
|
||||||
public class CloudGetOrganizationLicenseQuery : ICloudGetOrganizationLicenseQuery
|
public interface IGetCloudOrganizationLicenseQuery
|
||||||
|
{
|
||||||
|
Task<OrganizationLicense> GetLicenseAsync(Organization organization, Guid installationId,
|
||||||
|
int? version = null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetCloudOrganizationLicenseQuery : IGetCloudOrganizationLicenseQuery
|
||||||
{
|
{
|
||||||
private readonly IInstallationRepository _installationRepository;
|
private readonly IInstallationRepository _installationRepository;
|
||||||
private readonly IPaymentService _paymentService;
|
private readonly IPaymentService _paymentService;
|
||||||
@ -22,7 +27,7 @@ public class CloudGetOrganizationLicenseQuery : ICloudGetOrganizationLicenseQuer
|
|||||||
private readonly IProviderRepository _providerRepository;
|
private readonly IProviderRepository _providerRepository;
|
||||||
private readonly IFeatureService _featureService;
|
private readonly IFeatureService _featureService;
|
||||||
|
|
||||||
public CloudGetOrganizationLicenseQuery(
|
public GetCloudOrganizationLicenseQuery(
|
||||||
IInstallationRepository installationRepository,
|
IInstallationRepository installationRepository,
|
||||||
IPaymentService paymentService,
|
IPaymentService paymentService,
|
||||||
ILicensingService licensingService,
|
ILicensingService licensingService,
|
@ -2,8 +2,7 @@
|
|||||||
#nullable disable
|
#nullable disable
|
||||||
|
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
@ -13,13 +12,18 @@ using Bit.Core.Services;
|
|||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.SelfHosted;
|
namespace Bit.Core.Billing.Organizations.Queries;
|
||||||
|
|
||||||
public class SelfHostedGetOrganizationLicenseQuery : BaseIdentityClientService, ISelfHostedGetOrganizationLicenseQuery
|
public interface IGetSelfHostedOrganizationLicenseQuery
|
||||||
|
{
|
||||||
|
Task<OrganizationLicense> GetLicenseAsync(Organization organization, OrganizationConnection billingSyncConnection);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetSelfHostedOrganizationLicenseQuery : BaseIdentityClientService, IGetSelfHostedOrganizationLicenseQuery
|
||||||
{
|
{
|
||||||
private readonly IGlobalSettings _globalSettings;
|
private readonly IGlobalSettings _globalSettings;
|
||||||
|
|
||||||
public SelfHostedGetOrganizationLicenseQuery(IHttpClientFactory httpFactory, IGlobalSettings globalSettings, ILogger<SelfHostedGetOrganizationLicenseQuery> logger, ICurrentContext currentContext)
|
public GetSelfHostedOrganizationLicenseQuery(IHttpClientFactory httpFactory, IGlobalSettings globalSettings, ILogger<GetSelfHostedOrganizationLicenseQuery> logger, ICurrentContext currentContext)
|
||||||
: base(
|
: base(
|
||||||
httpFactory,
|
httpFactory,
|
||||||
globalSettings.Installation.ApiUri,
|
globalSettings.Installation.ApiUri,
|
@ -1,7 +1,7 @@
|
|||||||
using Bit.Core.Billing.Entities;
|
using Bit.Core.Billing.Organizations.Entities;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Repositories;
|
namespace Bit.Core.Billing.Organizations.Repositories;
|
||||||
|
|
||||||
public interface IOrganizationInstallationRepository : IRepository<OrganizationInstallation, Guid>
|
public interface IOrganizationInstallationRepository : IRepository<OrganizationInstallation, Guid>
|
||||||
{
|
{
|
@ -1,11 +1,9 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Models;
|
||||||
using Bit.Core.Billing.Models.Sales;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Tax.Models;
|
using Bit.Core.Billing.Tax.Models;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Services;
|
namespace Bit.Core.Billing.Organizations.Services;
|
||||||
|
|
||||||
#nullable enable
|
|
||||||
|
|
||||||
public interface IOrganizationBillingService
|
public interface IOrganizationBillingService
|
||||||
{
|
{
|
@ -5,7 +5,9 @@ using Bit.Core.Billing.Enums;
|
|||||||
using Bit.Core.Billing.Extensions;
|
using Bit.Core.Billing.Extensions;
|
||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Models;
|
||||||
using Bit.Core.Billing.Models.Sales;
|
using Bit.Core.Billing.Models.Sales;
|
||||||
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Billing.Tax.Models;
|
using Bit.Core.Billing.Tax.Models;
|
||||||
using Bit.Core.Billing.Tax.Services;
|
using Bit.Core.Billing.Tax.Services;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
@ -16,14 +18,11 @@ using Bit.Core.Settings;
|
|||||||
using Braintree;
|
using Braintree;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
|
|
||||||
using static Bit.Core.Billing.Utilities;
|
using static Bit.Core.Billing.Utilities;
|
||||||
using Customer = Stripe.Customer;
|
using Customer = Stripe.Customer;
|
||||||
using Subscription = Stripe.Subscription;
|
using Subscription = Stripe.Subscription;
|
||||||
|
|
||||||
namespace Bit.Core.Billing.Services.Implementations;
|
namespace Bit.Core.Billing.Organizations.Services;
|
||||||
|
|
||||||
#nullable enable
|
|
||||||
|
|
||||||
public class OrganizationBillingService(
|
public class OrganizationBillingService(
|
||||||
IBraintreeGateway braintreeGateway,
|
IBraintreeGateway braintreeGateway,
|
@ -3,6 +3,7 @@
|
|||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Models.Business;
|
||||||
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ using Bit.Core.AdminConsole.Entities;
|
|||||||
using Bit.Core.Billing.Licenses.Models;
|
using Bit.Core.Billing.Licenses.Models;
|
||||||
using Bit.Core.Billing.Licenses.Services;
|
using Bit.Core.Billing.Licenses.Services;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Models.Business;
|
||||||
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Models.Business;
|
||||||
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
|
@ -8,9 +8,9 @@ using Bit.Core.AdminConsole.Repositories;
|
|||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Repositories;
|
using Bit.Core.Auth.Repositories;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Sales;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Services;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
@ -8,7 +8,7 @@ using Bit.Core.Billing.Constants;
|
|||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Extensions;
|
using Bit.Core.Billing.Extensions;
|
||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Models;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Tax.Models;
|
using Bit.Core.Billing.Tax.Models;
|
||||||
using Bit.Core.Billing.Tax.Requests;
|
using Bit.Core.Billing.Tax.Requests;
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#nullable disable
|
#nullable disable
|
||||||
|
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using Bit.Core.Billing.Entities;
|
using Bit.Core.Billing.Organizations.Entities;
|
||||||
using Bit.Core.Billing.Repositories;
|
using Bit.Core.Billing.Organizations.Repositories;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
using Bit.Infrastructure.Dapper.Repositories;
|
using Bit.Infrastructure.Dapper.Repositories;
|
||||||
using Dapper;
|
using Dapper;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Auth.Repositories;
|
using Bit.Core.Auth.Repositories;
|
||||||
|
using Bit.Core.Billing.Organizations.Repositories;
|
||||||
using Bit.Core.Billing.Providers.Repositories;
|
using Bit.Core.Billing.Providers.Repositories;
|
||||||
using Bit.Core.Billing.Repositories;
|
|
||||||
using Bit.Core.Dirt.Reports.Repositories;
|
using Bit.Core.Dirt.Reports.Repositories;
|
||||||
using Bit.Core.Dirt.Repositories;
|
using Bit.Core.Dirt.Repositories;
|
||||||
using Bit.Core.KeyManagement.Repositories;
|
using Bit.Core.KeyManagement.Repositories;
|
||||||
|
@ -7,7 +7,7 @@ using Bit.Infrastructure.EntityFramework.Platform;
|
|||||||
|
|
||||||
namespace Bit.Infrastructure.EntityFramework.Billing.Models;
|
namespace Bit.Infrastructure.EntityFramework.Billing.Models;
|
||||||
|
|
||||||
public class OrganizationInstallation : Core.Billing.Entities.OrganizationInstallation
|
public class OrganizationInstallation : Core.Billing.Organizations.Entities.OrganizationInstallation
|
||||||
{
|
{
|
||||||
public virtual Installation Installation { get; set; }
|
public virtual Installation Installation { get; set; }
|
||||||
public virtual Organization Organization { get; set; }
|
public virtual Organization Organization { get; set; }
|
||||||
@ -17,6 +17,6 @@ public class OrganizationInstallationMapperProfile : Profile
|
|||||||
{
|
{
|
||||||
public OrganizationInstallationMapperProfile()
|
public OrganizationInstallationMapperProfile()
|
||||||
{
|
{
|
||||||
CreateMap<Core.Billing.Entities.OrganizationInstallation, OrganizationInstallation>().ReverseMap();
|
CreateMap<Core.Billing.Organizations.Entities.OrganizationInstallation, OrganizationInstallation>().ReverseMap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#nullable disable
|
#nullable disable
|
||||||
|
|
||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using Bit.Core.Billing.Entities;
|
using Bit.Core.Billing.Organizations.Entities;
|
||||||
using Bit.Core.Billing.Repositories;
|
using Bit.Core.Billing.Organizations.Repositories;
|
||||||
using Bit.Infrastructure.EntityFramework.Repositories;
|
using Bit.Infrastructure.EntityFramework.Repositories;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Auth.Repositories;
|
using Bit.Core.Auth.Repositories;
|
||||||
|
using Bit.Core.Billing.Organizations.Repositories;
|
||||||
using Bit.Core.Billing.Providers.Repositories;
|
using Bit.Core.Billing.Providers.Repositories;
|
||||||
using Bit.Core.Billing.Repositories;
|
|
||||||
using Bit.Core.Dirt.Reports.Repositories;
|
using Bit.Core.Dirt.Reports.Repositories;
|
||||||
using Bit.Core.Dirt.Repositories;
|
using Bit.Core.Dirt.Repositories;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
|
@ -4,7 +4,7 @@ using Bit.Api.AdminConsole.Models.Request.Organizations;
|
|||||||
using Bit.Api.AdminConsole.Models.Response.Organizations;
|
using Bit.Api.AdminConsole.Models.Response.Organizations;
|
||||||
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
using Bit.Api.Billing.Models.Responses;
|
using Bit.Api.Billing.Models.Responses;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models;
|
using Bit.Core.Billing.Models;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
|
@ -10,9 +10,9 @@ using Bit.Core.Auth.Enums;
|
|||||||
using Bit.Core.Auth.Models.Data;
|
using Bit.Core.Auth.Models.Data;
|
||||||
using Bit.Core.Auth.Repositories;
|
using Bit.Core.Auth.Repositories;
|
||||||
using Bit.Core.Auth.Services;
|
using Bit.Core.Auth.Services;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
|
using Bit.Core.Billing.Organizations.Repositories;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Repositories;
|
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
@ -40,7 +40,7 @@ public class OrganizationsControllerTests : IDisposable
|
|||||||
private readonly IPaymentService _paymentService;
|
private readonly IPaymentService _paymentService;
|
||||||
private readonly ISsoConfigRepository _ssoConfigRepository;
|
private readonly ISsoConfigRepository _ssoConfigRepository;
|
||||||
private readonly IUserService _userService;
|
private readonly IUserService _userService;
|
||||||
private readonly ICloudGetOrganizationLicenseQuery _cloudGetOrganizationLicenseQuery;
|
private readonly IGetCloudOrganizationLicenseQuery _getCloudOrganizationLicenseQuery;
|
||||||
private readonly ILicensingService _licensingService;
|
private readonly ILicensingService _licensingService;
|
||||||
private readonly IUpdateSecretsManagerSubscriptionCommand _updateSecretsManagerSubscriptionCommand;
|
private readonly IUpdateSecretsManagerSubscriptionCommand _updateSecretsManagerSubscriptionCommand;
|
||||||
private readonly IUpgradeOrganizationPlanCommand _upgradeOrganizationPlanCommand;
|
private readonly IUpgradeOrganizationPlanCommand _upgradeOrganizationPlanCommand;
|
||||||
@ -64,7 +64,7 @@ public class OrganizationsControllerTests : IDisposable
|
|||||||
_ssoConfigRepository = Substitute.For<ISsoConfigRepository>();
|
_ssoConfigRepository = Substitute.For<ISsoConfigRepository>();
|
||||||
Substitute.For<ISsoConfigService>();
|
Substitute.For<ISsoConfigService>();
|
||||||
_userService = Substitute.For<IUserService>();
|
_userService = Substitute.For<IUserService>();
|
||||||
_cloudGetOrganizationLicenseQuery = Substitute.For<ICloudGetOrganizationLicenseQuery>();
|
_getCloudOrganizationLicenseQuery = Substitute.For<IGetCloudOrganizationLicenseQuery>();
|
||||||
_licensingService = Substitute.For<ILicensingService>();
|
_licensingService = Substitute.For<ILicensingService>();
|
||||||
_updateSecretsManagerSubscriptionCommand = Substitute.For<IUpdateSecretsManagerSubscriptionCommand>();
|
_updateSecretsManagerSubscriptionCommand = Substitute.For<IUpdateSecretsManagerSubscriptionCommand>();
|
||||||
_upgradeOrganizationPlanCommand = Substitute.For<IUpgradeOrganizationPlanCommand>();
|
_upgradeOrganizationPlanCommand = Substitute.For<IUpgradeOrganizationPlanCommand>();
|
||||||
@ -81,7 +81,7 @@ public class OrganizationsControllerTests : IDisposable
|
|||||||
_userService,
|
_userService,
|
||||||
_paymentService,
|
_paymentService,
|
||||||
_currentContext,
|
_currentContext,
|
||||||
_cloudGetOrganizationLicenseQuery,
|
_getCloudOrganizationLicenseQuery,
|
||||||
_globalSettings,
|
_globalSettings,
|
||||||
_licensingService,
|
_licensingService,
|
||||||
_updateSecretsManagerSubscriptionCommand,
|
_updateSecretsManagerSubscriptionCommand,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Bit.Api.Utilities;
|
using Bit.Api.Utilities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
@ -5,7 +5,7 @@ using Bit.Core.Auth.Entities;
|
|||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models.Data;
|
using Bit.Core.Auth.Models.Data;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Organizations;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Organizations;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Sales;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Services;
|
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using AutoFixture;
|
using AutoFixture;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Test.Common.AutoFixture.Attributes;
|
using Bit.Test.Common.AutoFixture.Attributes;
|
||||||
|
|
||||||
namespace Bit.Core.Test.Billing.AutoFixture;
|
namespace Bit.Core.Test.Billing.AutoFixture;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Enums;
|
using Bit.Core.Billing.Enums;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
|
|
||||||
namespace Bit.Core.Test.Billing.Models.Business;
|
namespace Bit.Core.Test.Billing.Models.Business;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
using Bit.Test.Common.AutoFixture.Attributes;
|
using Bit.Test.Common.AutoFixture.Attributes;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
using Bit.Core.AdminConsole.Entities.Provider;
|
using Bit.Core.AdminConsole.Entities.Provider;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Models.Business;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses;
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
@ -23,11 +23,11 @@ namespace Bit.Core.Test.Billing.OrganizationFeatures.OrganizationLicenses;
|
|||||||
[SubscriptionInfoCustomize]
|
[SubscriptionInfoCustomize]
|
||||||
[OrganizationLicenseCustomize]
|
[OrganizationLicenseCustomize]
|
||||||
[SutProviderCustomize]
|
[SutProviderCustomize]
|
||||||
public class CloudGetOrganizationLicenseQueryTests
|
public class GetCloudOrganizationLicenseQueryTests
|
||||||
{
|
{
|
||||||
[Theory]
|
[Theory]
|
||||||
[BitAutoData]
|
[BitAutoData]
|
||||||
public async Task GetLicenseAsync_InvalidInstallationId_Throws(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
public async Task GetLicenseAsync_InvalidInstallationId_Throws(SutProvider<GetCloudOrganizationLicenseQuery> sutProvider,
|
||||||
Organization organization, Guid installationId, int version)
|
Organization organization, Guid installationId, int version)
|
||||||
{
|
{
|
||||||
sutProvider.GetDependency<IInstallationRepository>().GetByIdAsync(installationId).ReturnsNull();
|
sutProvider.GetDependency<IInstallationRepository>().GetByIdAsync(installationId).ReturnsNull();
|
||||||
@ -38,7 +38,7 @@ public class CloudGetOrganizationLicenseQueryTests
|
|||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[BitAutoData]
|
[BitAutoData]
|
||||||
public async Task GetLicenseAsync_DisabledOrganization_Throws(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
public async Task GetLicenseAsync_DisabledOrganization_Throws(SutProvider<GetCloudOrganizationLicenseQuery> sutProvider,
|
||||||
Organization organization, Guid installationId, Installation installation)
|
Organization organization, Guid installationId, Installation installation)
|
||||||
{
|
{
|
||||||
installation.Enabled = false;
|
installation.Enabled = false;
|
||||||
@ -51,7 +51,7 @@ public class CloudGetOrganizationLicenseQueryTests
|
|||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[BitAutoData]
|
[BitAutoData]
|
||||||
public async Task GetLicenseAsync_CreatesAndReturns(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
public async Task GetLicenseAsync_CreatesAndReturns(SutProvider<GetCloudOrganizationLicenseQuery> sutProvider,
|
||||||
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
||||||
byte[] licenseSignature)
|
byte[] licenseSignature)
|
||||||
{
|
{
|
||||||
@ -71,7 +71,7 @@ public class CloudGetOrganizationLicenseQueryTests
|
|||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[BitAutoData]
|
[BitAutoData]
|
||||||
public async Task GetLicenseAsync_WhenFeatureFlagEnabled_CreatesToken(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
public async Task GetLicenseAsync_WhenFeatureFlagEnabled_CreatesToken(SutProvider<GetCloudOrganizationLicenseQuery> sutProvider,
|
||||||
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
||||||
byte[] licenseSignature, string token)
|
byte[] licenseSignature, string token)
|
||||||
{
|
{
|
||||||
@ -90,7 +90,7 @@ public class CloudGetOrganizationLicenseQueryTests
|
|||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[BitAutoData]
|
[BitAutoData]
|
||||||
public async Task GetLicenseAsync_MSPManagedOrganization_UsesProviderSubscription(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
public async Task GetLicenseAsync_MSPManagedOrganization_UsesProviderSubscription(SutProvider<GetCloudOrganizationLicenseQuery> sutProvider,
|
||||||
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
||||||
byte[] licenseSignature, Provider provider)
|
byte[] licenseSignature, Provider provider)
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses.SelfHosted;
|
using Bit.Core.Billing.Organizations.Queries;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.OrganizationConnectionConfigs;
|
using Bit.Core.Models.OrganizationConnectionConfigs;
|
||||||
@ -15,12 +15,12 @@ using Xunit;
|
|||||||
namespace Bit.Core.Test.Billing.OrganizationFeatures.OrganizationLicenses;
|
namespace Bit.Core.Test.Billing.OrganizationFeatures.OrganizationLicenses;
|
||||||
|
|
||||||
[SutProviderCustomize]
|
[SutProviderCustomize]
|
||||||
public class SelfHostedGetOrganizationLicenseQueryTests
|
public class GetSelfHostedOrganizationLicenseQueryTests
|
||||||
{
|
{
|
||||||
private static SutProvider<SelfHostedGetOrganizationLicenseQuery> GetSutProvider(BillingSyncConfig config,
|
private static SutProvider<GetSelfHostedOrganizationLicenseQuery> GetSutProvider(BillingSyncConfig config,
|
||||||
string apiResponse = null)
|
string apiResponse = null)
|
||||||
{
|
{
|
||||||
return new SutProvider<SelfHostedGetOrganizationLicenseQuery>()
|
return new SutProvider<GetSelfHostedOrganizationLicenseQuery>()
|
||||||
.ConfigureBaseIdentityClientService($"licenses/organization/{config.CloudOrganizationId}",
|
.ConfigureBaseIdentityClientService($"licenses/organization/{config.CloudOrganizationId}",
|
||||||
HttpMethod.Get, apiResponse: apiResponse);
|
HttpMethod.Get, apiResponse: apiResponse);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Commands;
|
||||||
using Bit.Core.Billing.OrganizationFeatures.OrganizationLicenses;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using AutoFixture;
|
using AutoFixture;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Models.Business;
|
using Bit.Core.Billing.Organizations.Models;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
using Bit.Core.Test.Billing.AutoFixture;
|
using Bit.Core.Test.Billing.AutoFixture;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Billing.Constants;
|
using Bit.Core.Billing.Constants;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Pricing;
|
using Bit.Core.Billing.Pricing;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Billing.Services.Implementations;
|
|
||||||
using Bit.Core.Models.Data.Organizations.OrganizationUsers;
|
using Bit.Core.Models.Data.Organizations.OrganizationUsers;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.Utilities;
|
using Bit.Core.Utilities;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using AspNetCoreRateLimit;
|
using AspNetCoreRateLimit;
|
||||||
|
using Bit.Core.Billing.Organizations.Services;
|
||||||
using Bit.Core.Billing.Services;
|
using Bit.Core.Billing.Services;
|
||||||
using Bit.Core.Platform.Push;
|
using Bit.Core.Platform.Push;
|
||||||
using Bit.Core.Platform.Push.Internal;
|
using Bit.Core.Platform.Push.Internal;
|
||||||
|
Reference in New Issue
Block a user