1
0
mirror of https://github.com/bitwarden/server.git synced 2025-05-14 16:12:18 -05:00

Resolve the remove button issue (#5811)

This commit is contained in:
cyprain-okeke 2025-05-13 16:48:37 +01:00 committed by GitHub
parent 4195baf1c5
commit d58836bb60
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 7 deletions

View File

@ -207,7 +207,7 @@ public class OrganizationSponsorshipsController : Controller
[HttpDelete("{sponsoringOrganizationId}")] [HttpDelete("{sponsoringOrganizationId}")]
[HttpPost("{sponsoringOrganizationId}/delete")] [HttpPost("{sponsoringOrganizationId}/delete")]
[SelfHosted(NotSelfHostedOnly = true)] [SelfHosted(NotSelfHostedOnly = true)]
public async Task RevokeSponsorship(Guid sponsoringOrganizationId) public async Task RevokeSponsorship(Guid sponsoringOrganizationId, [FromQuery] bool isAdminInitiated = false)
{ {
var orgUser = await _organizationUserRepository.GetByOrganizationAsync(sponsoringOrganizationId, _currentContext.UserId ?? default); var orgUser = await _organizationUserRepository.GetByOrganizationAsync(sponsoringOrganizationId, _currentContext.UserId ?? default);
@ -217,7 +217,7 @@ public class OrganizationSponsorshipsController : Controller
} }
var existingOrgSponsorship = await _organizationSponsorshipRepository var existingOrgSponsorship = await _organizationSponsorshipRepository
.GetBySponsoringOrganizationUserIdAsync(orgUser.Id); .GetBySponsoringOrganizationUserIdAsync(orgUser.Id, isAdminInitiated);
await _revokeSponsorshipCommand.RevokeSponsorshipAsync(existingOrgSponsorship); await _revokeSponsorshipCommand.RevokeSponsorshipAsync(existingOrgSponsorship);
} }

View File

@ -11,7 +11,7 @@ public interface IOrganizationSponsorshipRepository : IRepository<OrganizationSp
Task UpsertManyAsync(IEnumerable<OrganizationSponsorship> organizationSponsorships); Task UpsertManyAsync(IEnumerable<OrganizationSponsorship> organizationSponsorships);
Task DeleteManyAsync(IEnumerable<Guid> organizationSponsorshipIds); Task DeleteManyAsync(IEnumerable<Guid> organizationSponsorshipIds);
Task<ICollection<OrganizationSponsorship>> GetManyBySponsoringOrganizationAsync(Guid sponsoringOrganizationId); Task<ICollection<OrganizationSponsorship>> GetManyBySponsoringOrganizationAsync(Guid sponsoringOrganizationId);
Task<OrganizationSponsorship?> GetBySponsoringOrganizationUserIdAsync(Guid sponsoringOrganizationUserId); Task<OrganizationSponsorship?> GetBySponsoringOrganizationUserIdAsync(Guid sponsoringOrganizationUserId, bool isAdminInitiated = false);
Task<OrganizationSponsorship?> GetBySponsoredOrganizationIdAsync(Guid sponsoredOrganizationId); Task<OrganizationSponsorship?> GetBySponsoredOrganizationIdAsync(Guid sponsoredOrganizationId);
Task<DateTime?> GetLatestSyncDateBySponsoringOrganizationIdAsync(Guid sponsoringOrganizationId); Task<DateTime?> GetLatestSyncDateBySponsoringOrganizationIdAsync(Guid sponsoringOrganizationId);
} }

View File

@ -89,7 +89,7 @@ public class OrganizationSponsorshipRepository : Repository<OrganizationSponsors
} }
} }
public async Task<OrganizationSponsorship?> GetBySponsoringOrganizationUserIdAsync(Guid sponsoringOrganizationUserId) public async Task<OrganizationSponsorship?> GetBySponsoringOrganizationUserIdAsync(Guid sponsoringOrganizationUserId, bool isAdminInitiated)
{ {
using (var connection = new SqlConnection(ConnectionString)) using (var connection = new SqlConnection(ConnectionString))
{ {
@ -97,7 +97,8 @@ public class OrganizationSponsorshipRepository : Repository<OrganizationSponsors
"[dbo].[OrganizationSponsorship_ReadBySponsoringOrganizationUserId]", "[dbo].[OrganizationSponsorship_ReadBySponsoringOrganizationUserId]",
new new
{ {
SponsoringOrganizationUserId = sponsoringOrganizationUserId SponsoringOrganizationUserId = sponsoringOrganizationUserId,
isAdminInitiated = isAdminInitiated
}, },
commandType: CommandType.StoredProcedure); commandType: CommandType.StoredProcedure);

View File

@ -104,12 +104,13 @@ public class OrganizationSponsorshipRepository : Repository<Core.Entities.Organi
} }
} }
public async Task<Core.Entities.OrganizationSponsorship?> GetBySponsoringOrganizationUserIdAsync(Guid sponsoringOrganizationUserId) public async Task<Core.Entities.OrganizationSponsorship?> GetBySponsoringOrganizationUserIdAsync(Guid sponsoringOrganizationUserId, bool isAdminInitiated = false)
{ {
using (var scope = ServiceScopeFactory.CreateScope()) using (var scope = ServiceScopeFactory.CreateScope())
{ {
var dbContext = GetDatabaseContext(scope); var dbContext = GetDatabaseContext(scope);
var orgSponsorship = await GetDbSet(dbContext).Where(e => e.SponsoringOrganizationUserId == sponsoringOrganizationUserId) var orgSponsorship = await GetDbSet(dbContext)
.Where(e => e.SponsoringOrganizationUserId == sponsoringOrganizationUserId && e.IsAdminInitiated == isAdminInitiated)
.FirstOrDefaultAsync(); .FirstOrDefaultAsync();
return orgSponsorship; return orgSponsorship;
} }