mirror of
https://github.com/bitwarden/server.git
synced 2025-07-04 01:22:50 -05:00
[PM-15179] Implement endpoints to add existing organization to CB provider (#5310)
* Implement endpoints to add existing organization to provider * Run dotnet format * Support MOE * Run dotnet format * Move ProviderClientsController under AC ownership * Move ProviderClientsControllerTests under AC ownership * Jared's feedback
This commit is contained in:
@ -1,9 +1,12 @@
|
||||
using AutoMapper;
|
||||
using AutoMapper.QueryableExtensions;
|
||||
using Bit.Core.AdminConsole.Enums.Provider;
|
||||
using Bit.Core.Billing.Constants;
|
||||
using Bit.Core.Billing.Enums;
|
||||
using Bit.Core.Enums;
|
||||
using Bit.Core.Models.Data.Organizations;
|
||||
using Bit.Core.Repositories;
|
||||
using LinqToDB.Tools;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
@ -298,6 +301,41 @@ public class OrganizationRepository : Repository<Core.AdminConsole.Entities.Orga
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<ICollection<Core.AdminConsole.Entities.Organization>> GetAddableToProviderByUserIdAsync(
|
||||
Guid userId,
|
||||
ProviderType providerType)
|
||||
{
|
||||
using (var scope = ServiceScopeFactory.CreateScope())
|
||||
{
|
||||
var dbContext = GetDatabaseContext(scope);
|
||||
|
||||
var planTypes = providerType switch
|
||||
{
|
||||
ProviderType.Msp => PlanConstants.EnterprisePlanTypes.Concat(PlanConstants.TeamsPlanTypes),
|
||||
ProviderType.MultiOrganizationEnterprise => PlanConstants.EnterprisePlanTypes,
|
||||
_ => []
|
||||
};
|
||||
|
||||
var query =
|
||||
from organizationUser in dbContext.OrganizationUsers
|
||||
join organization in dbContext.Organizations on organizationUser.OrganizationId equals organization.Id
|
||||
where
|
||||
organizationUser.UserId == userId &&
|
||||
organizationUser.Type == OrganizationUserType.Owner &&
|
||||
organizationUser.Status == OrganizationUserStatusType.Confirmed &&
|
||||
organization.Enabled &&
|
||||
organization.GatewayCustomerId != null &&
|
||||
organization.GatewaySubscriptionId != null &&
|
||||
organization.Seats > 0 &&
|
||||
organization.Status == OrganizationStatusType.Created &&
|
||||
!organization.UseSecretsManager &&
|
||||
organization.PlanType.In(planTypes)
|
||||
select organization;
|
||||
|
||||
return await query.ToArrayAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public Task EnableCollectionEnhancements(Guid organizationId)
|
||||
{
|
||||
throw new NotImplementedException("Collection enhancements migration is not yet supported for Entity Framework.");
|
||||
|
Reference in New Issue
Block a user