1
0
mirror of https://github.com/bitwarden/server synced 2025-12-17 16:53:23 +00:00

[PS-1928] Fix User Delete (#2463)

* Fix User Delete

* Formatting
This commit is contained in:
Justin Baur
2022-12-02 19:35:26 -05:00
committed by GitHub
parent 1652669667
commit 85e75c43b5
5 changed files with 56 additions and 76 deletions

View File

@@ -1,36 +0,0 @@
using Bit.Core.Enums;
using Bit.Infrastructure.EntityFramework.Models;
namespace Bit.Infrastructure.EntityFramework.Repositories.Queries;
public class OrganizationUserReadCountByOnlyOwnerQuery : IQuery<OrganizationUser>
{
private readonly Guid _userId;
public OrganizationUserReadCountByOnlyOwnerQuery(Guid userId)
{
_userId = userId;
}
public IQueryable<OrganizationUser> Run(DatabaseContext dbContext)
{
var owners = from ou in dbContext.OrganizationUsers
where ou.Type == OrganizationUserType.Owner &&
ou.Status == OrganizationUserStatusType.Confirmed
group ou by ou.OrganizationId into g
select new
{
OrgUser = g.Select(x => new { x.UserId, x.Id }).FirstOrDefault(),
ConfirmedOwnerCount = g.Count(),
};
var query = from owner in owners
join ou in dbContext.OrganizationUsers
on owner.OrgUser.Id equals ou.Id
where owner.OrgUser.UserId == _userId &&
owner.ConfirmedOwnerCount == 1
select ou;
return query;
}
}

View File

@@ -1,36 +0,0 @@
using Bit.Core.Enums.Provider;
using Bit.Infrastructure.EntityFramework.Models;
namespace Bit.Infrastructure.EntityFramework.Repositories.Queries;
public class ProviderUserReadCountByOnlyOwnerQuery : IQuery<ProviderUser>
{
private readonly Guid _userId;
public ProviderUserReadCountByOnlyOwnerQuery(Guid userId)
{
_userId = userId;
}
public IQueryable<ProviderUser> Run(DatabaseContext dbContext)
{
var owners = from pu in dbContext.ProviderUsers
where pu.Type == ProviderUserType.ProviderAdmin &&
pu.Status == ProviderUserStatusType.Confirmed
group pu by pu.ProviderId into g
select new
{
ProviderUser = g.Select(x => new { x.UserId, x.Id }).FirstOrDefault(),
ConfirmedOwnerCount = g.Count(),
};
var query = from owner in owners
join pu in dbContext.ProviderUsers
on owner.ProviderUser.Id equals pu.Id
where owner.ProviderUser.UserId == _userId &&
owner.ConfirmedOwnerCount == 1
select pu;
return query;
}
}