mirror of
https://github.com/bitwarden/server.git
synced 2025-07-02 16:42:50 -05:00
[PM-12358] New Verified Organization Domain SSO Detail endpoint (#4838)
* Added /domain/sso/verified to organization controller * Restricting sproc to only return verified domains if the org has sso. Adding name. corrected route. removed not found exception. Adding the sproc definition to the SQL project
This commit is contained in:
@ -2,11 +2,13 @@
|
||||
using Bit.Api.AdminConsole.Models.Request.Organizations;
|
||||
using Bit.Api.AdminConsole.Models.Response.Organizations;
|
||||
using Bit.Api.Models.Response;
|
||||
using Bit.Core;
|
||||
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationDomains.Interfaces;
|
||||
using Bit.Core.Context;
|
||||
using Bit.Core.Entities;
|
||||
using Bit.Core.Exceptions;
|
||||
using Bit.Core.Repositories;
|
||||
using Bit.Core.Utilities;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
@ -133,6 +135,20 @@ public class OrganizationDomainController : Controller
|
||||
return new OrganizationDomainSsoDetailsResponseModel(ssoResult);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("domain/sso/verified")]
|
||||
[RequireFeature(FeatureFlagKeys.VerifiedSsoDomainEndpoint)]
|
||||
public async Task<VerifiedOrganizationDomainSsoDetailsResponseModel> GetVerifiedOrgDomainSsoDetailsAsync(
|
||||
[FromBody] OrganizationDomainSsoDetailsRequestModel model)
|
||||
{
|
||||
var ssoResults = (await _organizationDomainRepository
|
||||
.GetVerifiedOrganizationDomainSsoDetailsAsync(model.Email))
|
||||
.ToList();
|
||||
|
||||
return new VerifiedOrganizationDomainSsoDetailsResponseModel(
|
||||
ssoResults.Select(ssoResult => new VerifiedOrganizationDomainSsoDetailResponseModel(ssoResult)));
|
||||
}
|
||||
|
||||
private async Task ValidateOrganizationAccessAsync(Guid orgIdGuid)
|
||||
{
|
||||
if (!await _currentContext.ManageSso(orgIdGuid))
|
||||
|
@ -0,0 +1,23 @@
|
||||
using Bit.Core.Models.Api;
|
||||
using Bit.Core.Models.Data.Organizations;
|
||||
|
||||
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
|
||||
|
||||
public class VerifiedOrganizationDomainSsoDetailResponseModel : ResponseModel
|
||||
{
|
||||
public VerifiedOrganizationDomainSsoDetailResponseModel(VerifiedOrganizationDomainSsoDetail data)
|
||||
: base("verifiedOrganizationDomainSsoDetails")
|
||||
{
|
||||
if (data is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(data));
|
||||
}
|
||||
|
||||
DomainName = data.DomainName;
|
||||
OrganizationIdentifier = data.OrganizationIdentifier;
|
||||
OrganizationName = data.OrganizationName;
|
||||
}
|
||||
public string DomainName { get; }
|
||||
public string OrganizationIdentifier { get; }
|
||||
public string OrganizationName { get; }
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
using Bit.Api.Models.Response;
|
||||
|
||||
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
|
||||
|
||||
public class VerifiedOrganizationDomainSsoDetailsResponseModel(
|
||||
IEnumerable<VerifiedOrganizationDomainSsoDetailResponseModel> data,
|
||||
string continuationToken = null)
|
||||
: ListResponseModel<VerifiedOrganizationDomainSsoDetailResponseModel>(data, continuationToken);
|
Reference in New Issue
Block a user