1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-21 04:55:08 -05:00

[PM-2196] Improvements to the Swagger generator (#2914)

* Swagger fixes

Co-Authored-By: Oscar Hinton <Hinton@users.noreply.github.com>

* Make Response Models return Guids instead of strings

* Change strings into guids in ScimApplicationFactory

---------

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
This commit is contained in:
Daniel García 2023-07-14 17:18:26 +02:00 committed by GitHub
parent 966614c7e2
commit 4f87e4e1a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 209 additions and 217 deletions

View File

@ -13,13 +13,13 @@ public class ScimGroupResponseModel : BaseScimGroupModel
public ScimGroupResponseModel(Group group) public ScimGroupResponseModel(Group group)
: this() : this()
{ {
Id = group.Id.ToString(); Id = group.Id;
DisplayName = group.Name; DisplayName = group.Name;
ExternalId = group.ExternalId; ExternalId = group.ExternalId;
Meta.Created = group.CreationDate; Meta.Created = group.CreationDate;
Meta.LastModified = group.RevisionDate; Meta.LastModified = group.RevisionDate;
} }
public string Id { get; set; } public Guid Id { get; set; }
public ScimMetaModel Meta { get; private set; } public ScimMetaModel Meta { get; private set; }
} }

View File

@ -14,7 +14,7 @@ public class ScimUserResponseModel : BaseScimUserModel
public ScimUserResponseModel(OrganizationUserUserDetails orgUser) public ScimUserResponseModel(OrganizationUserUserDetails orgUser)
: this() : this()
{ {
Id = orgUser.Id.ToString(); Id = orgUser.Id;
ExternalId = orgUser.ExternalId; ExternalId = orgUser.ExternalId;
UserName = orgUser.Email; UserName = orgUser.Email;
DisplayName = orgUser.Name; DisplayName = orgUser.Name;
@ -23,6 +23,6 @@ public class ScimUserResponseModel : BaseScimUserModel
Active = orgUser.Status != Core.Enums.OrganizationUserStatusType.Revoked; Active = orgUser.Status != Core.Enums.OrganizationUserStatusType.Revoked;
} }
public string Id { get; set; } public Guid Id { get; set; }
public ScimMetaModel Meta { get; private set; } public ScimMetaModel Meta { get; private set; }
} }

View File

@ -54,7 +54,7 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
public async Task Get_NotFound() public async Task Get_NotFound()
{ {
var organizationId = ScimApplicationFactory.TestOrganizationId1; var organizationId = ScimApplicationFactory.TestOrganizationId1;
var groupId = Guid.NewGuid().ToString(); var groupId = Guid.NewGuid();
var expectedResponse = new ScimErrorResponseModel var expectedResponse = new ScimErrorResponseModel
{ {
Status = StatusCodes.Status404NotFound, Status = StatusCodes.Status404NotFound,
@ -214,7 +214,7 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
ExternalId = externalId.ToString(), ExternalId = externalId.ToString(),
Members = new List<ScimGroupRequestModel.GroupMembersModel> Members = new List<ScimGroupRequestModel.GroupMembersModel>
{ {
new ScimGroupRequestModel.GroupMembersModel { Display = "user1@example.com", Value = ScimApplicationFactory.TestOrganizationUserId1 } new ScimGroupRequestModel.GroupMembersModel { Display = "user1@example.com", Value = ScimApplicationFactory.TestOrganizationUserId1.ToString() }
}, },
Schemas = new List<string>() { ScimConstants.Scim2SchemaGroup } Schemas = new List<string>() { ScimConstants.Scim2SchemaGroup }
}; };
@ -234,14 +234,13 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
var responseModel = JsonSerializer.Deserialize<ScimGroupResponseModel>(context.Response.Body, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); var responseModel = JsonSerializer.Deserialize<ScimGroupResponseModel>(context.Response.Body, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
AssertHelper.AssertPropertyEqual(expectedResponse, responseModel, "Id"); AssertHelper.AssertPropertyEqual(expectedResponse, responseModel, "Id");
Assert.NotNull(responseModel.Id);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
Assert.Equal(_initialGroupCount + 1, databaseContext.Groups.Count()); Assert.Equal(_initialGroupCount + 1, databaseContext.Groups.Count());
Assert.True(databaseContext.Groups.Any(g => g.Name == displayName && g.ExternalId == externalId)); Assert.True(databaseContext.Groups.Any(g => g.Name == displayName && g.ExternalId == externalId));
Assert.Equal(_initialGroupUsersCount + 1, databaseContext.GroupUsers.Count()); Assert.Equal(_initialGroupUsersCount + 1, databaseContext.GroupUsers.Count());
Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId.ToString() == responseModel.Id && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId1)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId == responseModel.Id && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId1));
} }
[Theory] [Theory]
@ -297,8 +296,8 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
ExternalId = "A", ExternalId = "A",
Members = new List<ScimGroupRequestModel.GroupMembersModel> Members = new List<ScimGroupRequestModel.GroupMembersModel>
{ {
new ScimGroupRequestModel.GroupMembersModel { Display = "user2@example.com", Value = ScimApplicationFactory.TestOrganizationUserId2 }, new ScimGroupRequestModel.GroupMembersModel { Display = "user2@example.com", Value = ScimApplicationFactory.TestOrganizationUserId2.ToString() },
new ScimGroupRequestModel.GroupMembersModel { Display = "user3@example.com", Value = ScimApplicationFactory.TestOrganizationUserId3 } new ScimGroupRequestModel.GroupMembersModel { Display = "user3@example.com", Value = ScimApplicationFactory.TestOrganizationUserId3.ToString() }
}, },
Schemas = new List<string>() { ScimConstants.Scim2SchemaGroup } Schemas = new List<string>() { ScimConstants.Scim2SchemaGroup }
}; };
@ -318,12 +317,12 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
AssertHelper.AssertPropertyEqual(expectedResponse, responseModel); AssertHelper.AssertPropertyEqual(expectedResponse, responseModel);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
var firstGroup = databaseContext.Groups.FirstOrDefault(g => g.Id.ToString() == groupId); var firstGroup = databaseContext.Groups.FirstOrDefault(g => g.Id == groupId);
Assert.Equal(newGroupName, firstGroup.Name); Assert.Equal(newGroupName, firstGroup.Name);
Assert.Equal(2, databaseContext.GroupUsers.Count(gu => gu.GroupId.ToString() == groupId)); Assert.Equal(2, databaseContext.GroupUsers.Count(gu => gu.GroupId == groupId));
Assert.NotNull(databaseContext.GroupUsers.FirstOrDefault(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId2)); Assert.NotNull(databaseContext.GroupUsers.FirstOrDefault(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId2));
Assert.NotNull(databaseContext.GroupUsers.FirstOrDefault(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId3)); Assert.NotNull(databaseContext.GroupUsers.FirstOrDefault(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId3));
} }
[Fact] [Fact]
@ -331,7 +330,7 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
{ {
var newGroupName = "Test Group 1 New Name"; var newGroupName = "Test Group 1 New Name";
var organizationId = ScimApplicationFactory.TestOrganizationId1; var organizationId = ScimApplicationFactory.TestOrganizationId1;
var groupId = Guid.NewGuid().ToString(); var groupId = Guid.NewGuid();
var inputModel = new ScimGroupRequestModel var inputModel = new ScimGroupRequestModel
{ {
DisplayName = newGroupName, DisplayName = newGroupName,
@ -378,12 +377,12 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
Assert.Equal(StatusCodes.Status204NoContent, context.Response.StatusCode); Assert.Equal(StatusCodes.Status204NoContent, context.Response.StatusCode);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
var group = databaseContext.Groups.FirstOrDefault(g => g.Id.ToString() == groupId); var group = databaseContext.Groups.FirstOrDefault(g => g.Id == groupId);
Assert.Equal(newDisplayName, group.Name); Assert.Equal(newDisplayName, group.Name);
Assert.Equal(_initialGroupUsersCount, databaseContext.GroupUsers.Count()); Assert.Equal(_initialGroupUsersCount, databaseContext.GroupUsers.Count());
Assert.True(databaseContext.GroupUsers.Any(gu => gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId1)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId1));
Assert.True(databaseContext.GroupUsers.Any(gu => gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId4)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId4));
} }
[Fact] [Fact]
@ -414,7 +413,7 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
Assert.Equal(_initialGroupUsersCount - 1, databaseContext.GroupUsers.Count()); Assert.Equal(_initialGroupUsersCount - 1, databaseContext.GroupUsers.Count());
var groupUser = databaseContext.GroupUsers.FirstOrDefault(); var groupUser = databaseContext.GroupUsers.FirstOrDefault();
Assert.Equal(ScimApplicationFactory.TestOrganizationUserId2, groupUser.OrganizationUserId.ToString()); Assert.Equal(ScimApplicationFactory.TestOrganizationUserId2, groupUser.OrganizationUserId);
} }
[Fact] [Fact]
@ -442,9 +441,9 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
Assert.Equal(_initialGroupUsersCount + 1, databaseContext.GroupUsers.Count()); Assert.Equal(_initialGroupUsersCount + 1, databaseContext.GroupUsers.Count());
Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId1)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId1));
Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId2)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId2));
Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId4)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId4));
} }
[Fact] [Fact]
@ -471,8 +470,8 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
Assert.Equal(StatusCodes.Status204NoContent, context.Response.StatusCode); Assert.Equal(StatusCodes.Status204NoContent, context.Response.StatusCode);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId2)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId2));
Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId.ToString() == groupId && gu.OrganizationUserId.ToString() == ScimApplicationFactory.TestOrganizationUserId3)); Assert.True(databaseContext.GroupUsers.Any(gu => gu.GroupId == groupId && gu.OrganizationUserId == ScimApplicationFactory.TestOrganizationUserId3));
} }
[Fact] [Fact]
@ -508,7 +507,7 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
Assert.Equal(_initialGroupUsersCount - 1, databaseContext.GroupUsers.Count()); Assert.Equal(_initialGroupUsersCount - 1, databaseContext.GroupUsers.Count());
Assert.Equal(_initialGroupCount, databaseContext.Groups.Count()); Assert.Equal(_initialGroupCount, databaseContext.Groups.Count());
var group = databaseContext.Groups.FirstOrDefault(g => g.Id.ToString() == groupId); var group = databaseContext.Groups.FirstOrDefault(g => g.Id == groupId);
Assert.Equal(newDisplayName, group.Name); Assert.Equal(newDisplayName, group.Name);
} }
@ -543,7 +542,7 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
public async Task Patch_NotFound() public async Task Patch_NotFound()
{ {
var organizationId = ScimApplicationFactory.TestOrganizationId1; var organizationId = ScimApplicationFactory.TestOrganizationId1;
var groupId = Guid.NewGuid().ToString(); var groupId = Guid.NewGuid();
var inputModel = new Models.ScimPatchModel var inputModel = new Models.ScimPatchModel
{ {
Operations = new List<ScimPatchModel.OperationModel>(), Operations = new List<ScimPatchModel.OperationModel>(),
@ -576,14 +575,14 @@ public class GroupsControllerTests : IClassFixture<ScimApplicationFactory>, IAsy
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
Assert.Equal(_initialGroupCount - 1, databaseContext.Groups.Count()); Assert.Equal(_initialGroupCount - 1, databaseContext.Groups.Count());
Assert.True(databaseContext.Groups.FirstOrDefault(g => g.Id.ToString() == groupId) == null); Assert.True(databaseContext.Groups.FirstOrDefault(g => g.Id == groupId) == null);
} }
[Fact] [Fact]
public async Task Delete_NotFound() public async Task Delete_NotFound()
{ {
var organizationId = ScimApplicationFactory.TestOrganizationId1; var organizationId = ScimApplicationFactory.TestOrganizationId1;
var groupId = Guid.NewGuid().ToString(); var groupId = Guid.NewGuid();
var expectedResponse = new ScimErrorResponseModel var expectedResponse = new ScimErrorResponseModel
{ {
Status = StatusCodes.Status404NotFound, Status = StatusCodes.Status404NotFound,

View File

@ -60,7 +60,7 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
[Fact] [Fact]
public async Task Get_NotFound() public async Task Get_NotFound()
{ {
var organizationUserId = Guid.NewGuid().ToString(); var organizationUserId = Guid.NewGuid();
var expectedResponse = new ScimErrorResponseModel var expectedResponse = new ScimErrorResponseModel
{ {
Status = StatusCodes.Status404NotFound, Status = StatusCodes.Status404NotFound,
@ -274,7 +274,6 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
var responseModel = JsonSerializer.Deserialize<ScimUserResponseModel>(context.Response.Body, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); var responseModel = JsonSerializer.Deserialize<ScimUserResponseModel>(context.Response.Body, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
AssertHelper.AssertPropertyEqual(expectedResponse, responseModel, "Id"); AssertHelper.AssertPropertyEqual(expectedResponse, responseModel, "Id");
Assert.NotNull(responseModel.Id);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
Assert.Equal(_initialUserCount + 1, databaseContext.OrganizationUsers.Count()); Assert.Equal(_initialUserCount + 1, databaseContext.OrganizationUsers.Count());
@ -373,7 +372,7 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
AssertHelper.AssertPropertyEqual(expectedResponse, responseModel); AssertHelper.AssertPropertyEqual(expectedResponse, responseModel);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
var revokedUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id.ToString() == organizationUserId); var revokedUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id == organizationUserId);
Assert.Equal(OrganizationUserStatusType.Revoked, revokedUser.Status); Assert.Equal(OrganizationUserStatusType.Revoked, revokedUser.Status);
} }
@ -408,7 +407,7 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
AssertHelper.AssertPropertyEqual(expectedResponse, responseModel); AssertHelper.AssertPropertyEqual(expectedResponse, responseModel);
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
var revokedUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id.ToString() == organizationUserId); var revokedUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id == organizationUserId);
Assert.NotEqual(OrganizationUserStatusType.Revoked, revokedUser.Status); Assert.NotEqual(OrganizationUserStatusType.Revoked, revokedUser.Status);
} }
@ -429,7 +428,7 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
Schemas = new List<string> { ScimConstants.Scim2SchemaError } Schemas = new List<string> { ScimConstants.Scim2SchemaError }
}; };
var context = await _factory.UsersPutAsync(ScimApplicationFactory.TestOrganizationId1, organizationUserId.ToString(), inputModel); var context = await _factory.UsersPutAsync(ScimApplicationFactory.TestOrganizationId1, organizationUserId, inputModel);
Assert.Equal(StatusCodes.Status404NotFound, context.Response.StatusCode); Assert.Equal(StatusCodes.Status404NotFound, context.Response.StatusCode);
@ -456,7 +455,7 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
var organizationUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id.ToString() == organizationUserId); var organizationUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id == organizationUserId);
Assert.Equal(OrganizationUserStatusType.Revoked, organizationUser.Status); Assert.Equal(OrganizationUserStatusType.Revoked, organizationUser.Status);
} }
@ -479,14 +478,14 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
var organizationUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id.ToString() == organizationUserId); var organizationUser = databaseContext.OrganizationUsers.FirstOrDefault(g => g.Id == organizationUserId);
Assert.NotEqual(OrganizationUserStatusType.Revoked, organizationUser.Status); Assert.NotEqual(OrganizationUserStatusType.Revoked, organizationUser.Status);
} }
[Fact] [Fact]
public async Task Patch_NotFound() public async Task Patch_NotFound()
{ {
var organizationUserId = Guid.NewGuid().ToString(); var organizationUserId = Guid.NewGuid();
var inputModel = new Models.ScimPatchModel var inputModel = new Models.ScimPatchModel
{ {
Operations = new List<ScimPatchModel.OperationModel>(), Operations = new List<ScimPatchModel.OperationModel>(),
@ -519,13 +518,13 @@ public class UsersControllerTests : IClassFixture<ScimApplicationFactory>, IAsyn
var databaseContext = _factory.GetDatabaseContext(); var databaseContext = _factory.GetDatabaseContext();
Assert.Equal(_initialUserCount - 1, databaseContext.OrganizationUsers.Count()); Assert.Equal(_initialUserCount - 1, databaseContext.OrganizationUsers.Count());
Assert.False(databaseContext.OrganizationUsers.Any(g => g.Id.ToString() == organizationUserId)); Assert.False(databaseContext.OrganizationUsers.Any(g => g.Id == organizationUserId));
} }
[Fact] [Fact]
public async Task Delete_NotFound() public async Task Delete_NotFound()
{ {
var organizationUserId = Guid.NewGuid().ToString(); var organizationUserId = Guid.NewGuid();
var inputModel = new ScimUserRequestModel(); var inputModel = new ScimUserRequestModel();
var expectedResponse = new ScimErrorResponseModel var expectedResponse = new ScimErrorResponseModel
{ {

View File

@ -19,18 +19,18 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
{ {
public readonly new TestServer Server; public readonly new TestServer Server;
public const string TestUserId1 = "2e8173db-8e8d-4de1-ac38-91b15c6d8dcb"; public static readonly Guid TestUserId1 = Guid.Parse("2e8173db-8e8d-4de1-ac38-91b15c6d8dcb");
public const string TestUserId2 = "b57846fc-0e94-4c93-9de5-9d0389eeadfb"; public static readonly Guid TestUserId2 = Guid.Parse("b57846fc-0e94-4c93-9de5-9d0389eeadfb");
public const string TestUserId3 = "20713eb8-d0c5-4655-b855-1a0f3472ccb5"; public static readonly Guid TestUserId3 = Guid.Parse("20713eb8-d0c5-4655-b855-1a0f3472ccb5");
public const string TestUserId4 = "cee613af-d0cb-4db9-ab9d-579bb120fd2a"; public static readonly Guid TestUserId4 = Guid.Parse("cee613af-d0cb-4db9-ab9d-579bb120fd2a");
public const string TestGroupId1 = "dcb232e8-761d-4152-a510-be2778d037cb"; public static readonly Guid TestGroupId1 = Guid.Parse("dcb232e8-761d-4152-a510-be2778d037cb");
public const string TestGroupId2 = "562e5371-7020-40b6-b092-099ac66dbdf9"; public static readonly Guid TestGroupId2 = Guid.Parse("562e5371-7020-40b6-b092-099ac66dbdf9");
public const string TestGroupId3 = "362c2782-0f1f-4c86-95dd-edbdf7d6040b"; public static readonly Guid TestGroupId3 = Guid.Parse("362c2782-0f1f-4c86-95dd-edbdf7d6040b");
public const string TestOrganizationId1 = "fb98e04f-0303-4914-9b37-a983943bf1ca"; public static readonly Guid TestOrganizationId1 = Guid.Parse("fb98e04f-0303-4914-9b37-a983943bf1ca");
public const string TestOrganizationUserId1 = "5d421196-8c59-485b-8926-2d6d0101e05f"; public static readonly Guid TestOrganizationUserId1 = Guid.Parse("5d421196-8c59-485b-8926-2d6d0101e05f");
public const string TestOrganizationUserId2 = "3a63d520-0d84-4679-b887-13fe2058d53b"; public static readonly Guid TestOrganizationUserId2 = Guid.Parse("3a63d520-0d84-4679-b887-13fe2058d53b");
public const string TestOrganizationUserId3 = "be2f9045-e2b6-4173-ad44-4c69c3ea8140"; public static readonly Guid TestOrganizationUserId3 = Guid.Parse("be2f9045-e2b6-4173-ad44-4c69c3ea8140");
public const string TestOrganizationUserId4 = "1f5689b7-e96e-4840-b0b1-eb3d5b5fd514"; public static readonly Guid TestOrganizationUserId4 = Guid.Parse("1f5689b7-e96e-4840-b0b1-eb3d5b5fd514");
public ScimApplicationFactory() public ScimApplicationFactory()
{ {
@ -60,12 +60,12 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
Server = webApplicationFactory.Server; Server = webApplicationFactory.Server;
} }
public async Task<HttpContext> GroupsGetAsync(string organizationId, string id) public async Task<HttpContext> GroupsGetAsync(Guid organizationId, Guid id)
{ {
return await Server.GetAsync($"/v2/{organizationId}/groups/{id}"); return await Server.GetAsync($"/v2/{organizationId}/groups/{id}");
} }
public async Task<HttpContext> GroupsGetListAsync(string organizationId, string filter, int? count, int? startIndex) public async Task<HttpContext> GroupsGetListAsync(Guid organizationId, string filter, int? count, int? startIndex)
{ {
var queryString = new QueryString("?"); var queryString = new QueryString("?");
@ -87,32 +87,32 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
return await Server.GetAsync($"/v2/{organizationId}/groups", httpContext => httpContext.Request.QueryString = queryString); return await Server.GetAsync($"/v2/{organizationId}/groups", httpContext => httpContext.Request.QueryString = queryString);
} }
public async Task<HttpContext> GroupsPostAsync(string organizationId, ScimGroupRequestModel model) public async Task<HttpContext> GroupsPostAsync(Guid organizationId, ScimGroupRequestModel model)
{ {
return await Server.PostAsync($"/v2/{organizationId}/groups", GetStringContent(model), httpContext => httpContext.Request.Headers.Add(HeaderNames.UserAgent, "Okta")); return await Server.PostAsync($"/v2/{organizationId}/groups", GetStringContent(model), httpContext => httpContext.Request.Headers.Add(HeaderNames.UserAgent, "Okta"));
} }
public async Task<HttpContext> GroupsPutAsync(string organizationId, string id, ScimGroupRequestModel model) public async Task<HttpContext> GroupsPutAsync(Guid organizationId, Guid id, ScimGroupRequestModel model)
{ {
return await Server.PutAsync($"/v2/{organizationId}/groups/{id}", GetStringContent(model), httpContext => httpContext.Request.Headers.Add(HeaderNames.UserAgent, "Okta")); return await Server.PutAsync($"/v2/{organizationId}/groups/{id}", GetStringContent(model), httpContext => httpContext.Request.Headers.Add(HeaderNames.UserAgent, "Okta"));
} }
public async Task<HttpContext> GroupsPatchAsync(string organizationId, string id, ScimPatchModel model) public async Task<HttpContext> GroupsPatchAsync(Guid organizationId, Guid id, ScimPatchModel model)
{ {
return await Server.PatchAsync($"/v2/{organizationId}/groups/{id}", GetStringContent(model)); return await Server.PatchAsync($"/v2/{organizationId}/groups/{id}", GetStringContent(model));
} }
public async Task<HttpContext> GroupsDeleteAsync(string organizationId, string id) public async Task<HttpContext> GroupsDeleteAsync(Guid organizationId, Guid id)
{ {
return await Server.DeleteAsync($"/v2/{organizationId}/groups/{id}", null); return await Server.DeleteAsync($"/v2/{organizationId}/groups/{id}", null);
} }
public async Task<HttpContext> UsersGetAsync(string organizationId, string id) public async Task<HttpContext> UsersGetAsync(Guid organizationId, Guid id)
{ {
return await Server.GetAsync($"/v2/{organizationId}/users/{id}"); return await Server.GetAsync($"/v2/{organizationId}/users/{id}");
} }
public async Task<HttpContext> UsersGetListAsync(string organizationId, string filter, int? count, int? startIndex) public async Task<HttpContext> UsersGetListAsync(Guid organizationId, string filter, int? count, int? startIndex)
{ {
var queryString = new QueryString("?"); var queryString = new QueryString("?");
@ -134,22 +134,22 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
return await Server.GetAsync($"/v2/{organizationId}/users", httpContext => httpContext.Request.QueryString = queryString); return await Server.GetAsync($"/v2/{organizationId}/users", httpContext => httpContext.Request.QueryString = queryString);
} }
public async Task<HttpContext> UsersPostAsync(string organizationId, ScimUserRequestModel model) public async Task<HttpContext> UsersPostAsync(Guid organizationId, ScimUserRequestModel model)
{ {
return await Server.PostAsync($"/v2/{organizationId}/users", GetStringContent(model)); return await Server.PostAsync($"/v2/{organizationId}/users", GetStringContent(model));
} }
public async Task<HttpContext> UsersPutAsync(string organizationId, string id, ScimUserRequestModel model) public async Task<HttpContext> UsersPutAsync(Guid organizationId, Guid id, ScimUserRequestModel model)
{ {
return await Server.PutAsync($"/v2/{organizationId}/users/{id}", GetStringContent(model)); return await Server.PutAsync($"/v2/{organizationId}/users/{id}", GetStringContent(model));
} }
public async Task<HttpContext> UsersPatchAsync(string organizationId, string id, ScimPatchModel model) public async Task<HttpContext> UsersPatchAsync(Guid organizationId, Guid id, ScimPatchModel model)
{ {
return await Server.PatchAsync($"/v2/{organizationId}/users/{id}", GetStringContent(model)); return await Server.PatchAsync($"/v2/{organizationId}/users/{id}", GetStringContent(model));
} }
public async Task<HttpContext> UsersDeleteAsync(string organizationId, string id, ScimUserRequestModel model) public async Task<HttpContext> UsersDeleteAsync(Guid organizationId, Guid id, ScimUserRequestModel model)
{ {
return await Server.DeleteAsync($"/v2/{organizationId}/users/{id}", GetStringContent(model)); return await Server.DeleteAsync($"/v2/{organizationId}/users/{id}", GetStringContent(model));
} }
@ -179,10 +179,10 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
{ {
return new List<Infrastructure.EntityFramework.Models.User>() return new List<Infrastructure.EntityFramework.Models.User>()
{ {
new Infrastructure.EntityFramework.Models.User { Id = Guid.Parse(TestUserId1), Name = "Test User 1", ApiKey = "", Email = "user1@example.com", SecurityStamp = "" }, new Infrastructure.EntityFramework.Models.User { Id = TestUserId1, Name = "Test User 1", ApiKey = "", Email = "user1@example.com", SecurityStamp = "" },
new Infrastructure.EntityFramework.Models.User { Id = Guid.Parse(TestUserId2), Name = "Test User 2", ApiKey = "", Email = "user2@example.com", SecurityStamp = "" }, new Infrastructure.EntityFramework.Models.User { Id = TestUserId2, Name = "Test User 2", ApiKey = "", Email = "user2@example.com", SecurityStamp = "" },
new Infrastructure.EntityFramework.Models.User { Id = Guid.Parse(TestUserId3), Name = "Test User 3", ApiKey = "", Email = "user3@example.com", SecurityStamp = "" }, new Infrastructure.EntityFramework.Models.User { Id = TestUserId3, Name = "Test User 3", ApiKey = "", Email = "user3@example.com", SecurityStamp = "" },
new Infrastructure.EntityFramework.Models.User { Id = Guid.Parse(TestUserId4), Name = "Test User 4", ApiKey = "", Email = "user4@example.com", SecurityStamp = "" }, new Infrastructure.EntityFramework.Models.User { Id = TestUserId4, Name = "Test User 4", ApiKey = "", Email = "user4@example.com", SecurityStamp = "" },
}; };
} }
@ -190,9 +190,9 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
{ {
return new List<Infrastructure.EntityFramework.Models.Group>() return new List<Infrastructure.EntityFramework.Models.Group>()
{ {
new Infrastructure.EntityFramework.Models.Group { Id = Guid.Parse(TestGroupId1), OrganizationId = Guid.Parse(TestOrganizationId1), Name = "Test Group 1", ExternalId = "A" }, new Infrastructure.EntityFramework.Models.Group { Id = TestGroupId1, OrganizationId = TestOrganizationId1, Name = "Test Group 1", ExternalId = "A" },
new Infrastructure.EntityFramework.Models.Group { Id = Guid.Parse(TestGroupId2), OrganizationId = Guid.Parse(TestOrganizationId1), Name = "Test Group 2", ExternalId = "B" }, new Infrastructure.EntityFramework.Models.Group { Id = TestGroupId2, OrganizationId = TestOrganizationId1, Name = "Test Group 2", ExternalId = "B" },
new Infrastructure.EntityFramework.Models.Group { Id = Guid.Parse(TestGroupId3), OrganizationId = Guid.Parse(TestOrganizationId1), Name = "Test Group 3", ExternalId = "C" } new Infrastructure.EntityFramework.Models.Group { Id = TestGroupId3, OrganizationId = TestOrganizationId1, Name = "Test Group 3", ExternalId = "C" }
}; };
} }
@ -200,7 +200,7 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
{ {
return new List<Infrastructure.EntityFramework.Models.Organization>() return new List<Infrastructure.EntityFramework.Models.Organization>()
{ {
new Infrastructure.EntityFramework.Models.Organization { Id = Guid.Parse(TestOrganizationId1), Name = "Test Organization 1", UseGroups = true } new Infrastructure.EntityFramework.Models.Organization { Id = TestOrganizationId1, Name = "Test Organization 1", UseGroups = true }
}; };
} }
@ -208,10 +208,10 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
{ {
return new List<Infrastructure.EntityFramework.Models.OrganizationUser>() return new List<Infrastructure.EntityFramework.Models.OrganizationUser>()
{ {
new Infrastructure.EntityFramework.Models.OrganizationUser { Id = Guid.Parse(TestOrganizationUserId1), OrganizationId = Guid.Parse(TestOrganizationId1), UserId = Guid.Parse(TestUserId1), Status = Core.Enums.OrganizationUserStatusType.Confirmed, ExternalId = "UA", Email = "user1@example.com" }, new Infrastructure.EntityFramework.Models.OrganizationUser { Id = TestOrganizationUserId1, OrganizationId = TestOrganizationId1, UserId = TestUserId1, Status = Core.Enums.OrganizationUserStatusType.Confirmed, ExternalId = "UA", Email = "user1@example.com" },
new Infrastructure.EntityFramework.Models.OrganizationUser { Id = Guid.Parse(TestOrganizationUserId2), OrganizationId = Guid.Parse(TestOrganizationId1), UserId = Guid.Parse(TestUserId2), Status = Core.Enums.OrganizationUserStatusType.Confirmed, ExternalId = "UB", Email = "user2@example.com" }, new Infrastructure.EntityFramework.Models.OrganizationUser { Id = TestOrganizationUserId2, OrganizationId = TestOrganizationId1, UserId = TestUserId2, Status = Core.Enums.OrganizationUserStatusType.Confirmed, ExternalId = "UB", Email = "user2@example.com" },
new Infrastructure.EntityFramework.Models.OrganizationUser { Id = Guid.Parse(TestOrganizationUserId3), OrganizationId = Guid.Parse(TestOrganizationId1), UserId = Guid.Parse(TestUserId3), Status = Core.Enums.OrganizationUserStatusType.Revoked, ExternalId = "UC", Email = "user3@example.com" }, new Infrastructure.EntityFramework.Models.OrganizationUser { Id = TestOrganizationUserId3, OrganizationId = TestOrganizationId1, UserId = TestUserId3, Status = Core.Enums.OrganizationUserStatusType.Revoked, ExternalId = "UC", Email = "user3@example.com" },
new Infrastructure.EntityFramework.Models.OrganizationUser { Id = Guid.Parse(TestOrganizationUserId4), OrganizationId = Guid.Parse(TestOrganizationId1), UserId = Guid.Parse(TestUserId4), Status = Core.Enums.OrganizationUserStatusType.Confirmed, ExternalId = "UD", Email = "user4@example.com" }, new Infrastructure.EntityFramework.Models.OrganizationUser { Id = TestOrganizationUserId4, OrganizationId = TestOrganizationId1, UserId = TestUserId4, Status = Core.Enums.OrganizationUserStatusType.Confirmed, ExternalId = "UD", Email = "user4@example.com" },
}; };
} }
@ -219,8 +219,8 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
{ {
return new List<Infrastructure.EntityFramework.Models.GroupUser>() return new List<Infrastructure.EntityFramework.Models.GroupUser>()
{ {
new Infrastructure.EntityFramework.Models.GroupUser { GroupId = Guid.Parse(TestGroupId1), OrganizationUserId = Guid.Parse(TestOrganizationUserId1) }, new Infrastructure.EntityFramework.Models.GroupUser { GroupId = TestGroupId1, OrganizationUserId = TestOrganizationUserId1 },
new Infrastructure.EntityFramework.Models.GroupUser { GroupId = Guid.Parse(TestGroupId1), OrganizationUserId = Guid.Parse(TestOrganizationUserId4) } new Infrastructure.EntityFramework.Models.GroupUser { GroupId = TestGroupId1, OrganizationUserId = TestOrganizationUserId4 }
}; };
} }
@ -239,7 +239,7 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
var claims = new[] var claims = new[]
{ {
new Claim(ClaimTypes.Name, "Test user"), new Claim(ClaimTypes.Name, "Test user"),
new Claim("orgadmin", TestOrganizationId1) new Claim("orgadmin", TestOrganizationId1.ToString())
}; };
var identity = new ClaimsIdentity(claims, "Test"); var identity = new ClaimsIdentity(claims, "Test");
var principal = new ClaimsPrincipal(identity); var principal = new ClaimsPrincipal(identity);

View File

@ -15,7 +15,7 @@ public class AuthRequestResponseModel : ResponseModel
throw new ArgumentNullException(nameof(authRequest)); throw new ArgumentNullException(nameof(authRequest));
} }
Id = authRequest.Id.ToString(); Id = authRequest.Id;
PublicKey = authRequest.PublicKey; PublicKey = authRequest.PublicKey;
RequestDeviceType = authRequest.RequestDeviceType.GetType().GetMember(authRequest.RequestDeviceType.ToString()) RequestDeviceType = authRequest.RequestDeviceType.GetType().GetMember(authRequest.RequestDeviceType.ToString())
.FirstOrDefault()?.GetCustomAttribute<DisplayAttribute>()?.GetName(); .FirstOrDefault()?.GetCustomAttribute<DisplayAttribute>()?.GetName();
@ -28,7 +28,7 @@ public class AuthRequestResponseModel : ResponseModel
ResponseDate = authRequest.ResponseDate; ResponseDate = authRequest.ResponseDate;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string PublicKey { get; set; } public string PublicKey { get; set; }
public string RequestDeviceType { get; set; } public string RequestDeviceType { get; set; }
public string RequestIpAddress { get; set; } public string RequestIpAddress { get; set; }

View File

@ -19,7 +19,7 @@ public class EmergencyAccessResponseModel : ResponseModel
throw new ArgumentNullException(nameof(emergencyAccess)); throw new ArgumentNullException(nameof(emergencyAccess));
} }
Id = emergencyAccess.Id.ToString(); Id = emergencyAccess.Id;
Status = emergencyAccess.Status; Status = emergencyAccess.Status;
Type = emergencyAccess.Type; Type = emergencyAccess.Type;
WaitTimeDays = emergencyAccess.WaitTimeDays; WaitTimeDays = emergencyAccess.WaitTimeDays;
@ -32,13 +32,13 @@ public class EmergencyAccessResponseModel : ResponseModel
throw new ArgumentNullException(nameof(emergencyAccess)); throw new ArgumentNullException(nameof(emergencyAccess));
} }
Id = emergencyAccess.Id.ToString(); Id = emergencyAccess.Id;
Status = emergencyAccess.Status; Status = emergencyAccess.Status;
Type = emergencyAccess.Type; Type = emergencyAccess.Type;
WaitTimeDays = emergencyAccess.WaitTimeDays; WaitTimeDays = emergencyAccess.WaitTimeDays;
} }
public string Id { get; private set; } public Guid Id { get; private set; }
public EmergencyAccessStatusType Status { get; private set; } public EmergencyAccessStatusType Status { get; private set; }
public EmergencyAccessType Type { get; private set; } public EmergencyAccessType Type { get; private set; }
public int WaitTimeDays { get; private set; } public int WaitTimeDays { get; private set; }
@ -54,13 +54,13 @@ public class EmergencyAccessGranteeDetailsResponseModel : EmergencyAccessRespons
throw new ArgumentNullException(nameof(emergencyAccess)); throw new ArgumentNullException(nameof(emergencyAccess));
} }
GranteeId = emergencyAccess.GranteeId.ToString(); GranteeId = emergencyAccess.GranteeId;
Email = emergencyAccess.GranteeEmail; Email = emergencyAccess.GranteeEmail;
Name = emergencyAccess.GranteeName; Name = emergencyAccess.GranteeName;
AvatarColor = emergencyAccess.GranteeAvatarColor; AvatarColor = emergencyAccess.GranteeAvatarColor;
} }
public string GranteeId { get; private set; } public Guid? GranteeId { get; private set; }
public string Name { get; private set; } public string Name { get; private set; }
public string Email { get; private set; } public string Email { get; private set; }
public string AvatarColor { get; private set; } public string AvatarColor { get; private set; }
@ -76,13 +76,13 @@ public class EmergencyAccessGrantorDetailsResponseModel : EmergencyAccessRespons
throw new ArgumentNullException(nameof(emergencyAccess)); throw new ArgumentNullException(nameof(emergencyAccess));
} }
GrantorId = emergencyAccess.GrantorId.ToString(); GrantorId = emergencyAccess.GrantorId;
Email = emergencyAccess.GrantorEmail; Email = emergencyAccess.GrantorEmail;
Name = emergencyAccess.GrantorName; Name = emergencyAccess.GrantorName;
AvatarColor = emergencyAccess.GrantorAvatarColor; AvatarColor = emergencyAccess.GrantorAvatarColor;
} }
public string GrantorId { get; private set; } public Guid GrantorId { get; private set; }
public string Name { get; private set; } public string Name { get; private set; }
public string Email { get; private set; } public string Email { get; private set; }
public string AvatarColor { get; private set; } public string AvatarColor { get; private set; }

View File

@ -14,14 +14,14 @@ public class CollectionResponseModel : ResponseModel
throw new ArgumentNullException(nameof(collection)); throw new ArgumentNullException(nameof(collection));
} }
Id = collection.Id.ToString(); Id = collection.Id;
OrganizationId = collection.OrganizationId.ToString(); OrganizationId = collection.OrganizationId;
Name = collection.Name; Name = collection.Name;
ExternalId = collection.ExternalId; ExternalId = collection.ExternalId;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string ExternalId { get; set; } public string ExternalId { get; set; }
} }

View File

@ -14,7 +14,7 @@ public class DeviceResponseModel : ResponseModel
throw new ArgumentNullException(nameof(device)); throw new ArgumentNullException(nameof(device));
} }
Id = device.Id.ToString(); Id = device.Id;
Name = device.Name; Name = device.Name;
Type = device.Type; Type = device.Type;
Identifier = device.Identifier; Identifier = device.Identifier;
@ -24,7 +24,7 @@ public class DeviceResponseModel : ResponseModel
EncryptedPrivateKey = device.EncryptedPrivateKey; EncryptedPrivateKey = device.EncryptedPrivateKey;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public DeviceType Type { get; set; } public DeviceType Type { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -14,15 +14,15 @@ public class GroupResponseModel : ResponseModel
throw new ArgumentNullException(nameof(group)); throw new ArgumentNullException(nameof(group));
} }
Id = group.Id.ToString(); Id = group.Id;
OrganizationId = group.OrganizationId.ToString(); OrganizationId = group.OrganizationId;
Name = group.Name; Name = group.Name;
AccessAll = group.AccessAll; AccessAll = group.AccessAll;
ExternalId = group.ExternalId; ExternalId = group.ExternalId;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Name { get; set; } public string Name { get; set; }
public bool AccessAll { get; set; } public bool AccessAll { get; set; }
public string ExternalId { get; set; } public string ExternalId { get; set; }

View File

@ -8,12 +8,12 @@ public class InstallationResponseModel : ResponseModel
public InstallationResponseModel(Installation installation, bool withKey) public InstallationResponseModel(Installation installation, bool withKey)
: base("installation") : base("installation")
{ {
Id = installation.Id.ToString(); Id = installation.Id;
Key = withKey ? installation.Key : null; Key = withKey ? installation.Key : null;
Enabled = installation.Enabled; Enabled = installation.Enabled;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Key { get; set; } public string Key { get; set; }
public bool Enabled { get; set; } public bool Enabled { get; set; }
} }

View File

@ -6,10 +6,10 @@ public class OrganizationAutoEnrollStatusResponseModel : ResponseModel
{ {
public OrganizationAutoEnrollStatusResponseModel(Guid orgId, bool resetPasswordEnabled) : base("organizationAutoEnrollStatus") public OrganizationAutoEnrollStatusResponseModel(Guid orgId, bool resetPasswordEnabled) : base("organizationAutoEnrollStatus")
{ {
Id = orgId.ToString(); Id = orgId;
ResetPasswordEnabled = resetPasswordEnabled; ResetPasswordEnabled = resetPasswordEnabled;
} }
public string Id { get; set; } public Guid Id { get; set; }
public bool ResetPasswordEnabled { get; set; } public bool ResetPasswordEnabled { get; set; }
} }

View File

@ -13,8 +13,8 @@ public class OrganizationDomainResponseModel : ResponseModel
throw new ArgumentNullException(nameof(organizationDomain)); throw new ArgumentNullException(nameof(organizationDomain));
} }
Id = organizationDomain.Id.ToString(); Id = organizationDomain.Id;
OrganizationId = organizationDomain.OrganizationId.ToString(); OrganizationId = organizationDomain.OrganizationId;
Txt = organizationDomain.Txt; Txt = organizationDomain.Txt;
DomainName = organizationDomain.DomainName; DomainName = organizationDomain.DomainName;
CreationDate = organizationDomain.CreationDate; CreationDate = organizationDomain.CreationDate;
@ -24,8 +24,8 @@ public class OrganizationDomainResponseModel : ResponseModel
LastCheckedDate = organizationDomain.LastCheckedDate; LastCheckedDate = organizationDomain.LastCheckedDate;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Txt { get; set; } public string Txt { get; set; }
public string DomainName { get; set; } public string DomainName { get; set; }
public DateTime CreationDate { get; set; } public DateTime CreationDate { get; set; }

View File

@ -17,7 +17,7 @@ public class OrganizationResponseModel : ResponseModel
throw new ArgumentNullException(nameof(organization)); throw new ArgumentNullException(nameof(organization));
} }
Id = organization.Id.ToString(); Id = organization.Id;
Name = organization.Name; Name = organization.Name;
BusinessName = organization.BusinessName; BusinessName = organization.BusinessName;
BusinessAddress1 = organization.BusinessAddress1; BusinessAddress1 = organization.BusinessAddress1;
@ -55,7 +55,7 @@ public class OrganizationResponseModel : ResponseModel
MaxAutoscaleSmServiceAccounts = organization.MaxAutoscaleSmServiceAccounts; MaxAutoscaleSmServiceAccounts = organization.MaxAutoscaleSmServiceAccounts;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string BusinessName { get; set; } public string BusinessName { get; set; }
public string BusinessAddress1 { get; set; } public string BusinessAddress1 { get; set; }

View File

@ -18,8 +18,8 @@ public class OrganizationUserResponseModel : ResponseModel
throw new ArgumentNullException(nameof(organizationUser)); throw new ArgumentNullException(nameof(organizationUser));
} }
Id = organizationUser.Id.ToString(); Id = organizationUser.Id;
UserId = organizationUser.UserId?.ToString(); UserId = organizationUser.UserId;
Type = organizationUser.Type; Type = organizationUser.Type;
Status = organizationUser.Status; Status = organizationUser.Status;
AccessAll = organizationUser.AccessAll; AccessAll = organizationUser.AccessAll;
@ -37,8 +37,8 @@ public class OrganizationUserResponseModel : ResponseModel
throw new ArgumentNullException(nameof(organizationUser)); throw new ArgumentNullException(nameof(organizationUser));
} }
Id = organizationUser.Id.ToString(); Id = organizationUser.Id;
UserId = organizationUser.UserId?.ToString(); UserId = organizationUser.UserId;
Type = organizationUser.Type; Type = organizationUser.Type;
Status = organizationUser.Status; Status = organizationUser.Status;
AccessAll = organizationUser.AccessAll; AccessAll = organizationUser.AccessAll;
@ -50,8 +50,8 @@ public class OrganizationUserResponseModel : ResponseModel
HasMasterPassword = organizationUser.HasMasterPassword; HasMasterPassword = organizationUser.HasMasterPassword;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string UserId { get; set; } public Guid? UserId { get; set; }
public OrganizationUserType Type { get; set; } public OrganizationUserType Type { get; set; }
public OrganizationUserStatusType Status { get; set; } public OrganizationUserStatusType Status { get; set; }
public bool AccessAll { get; set; } public bool AccessAll { get; set; }

View File

@ -15,7 +15,7 @@ public class ProfileOrganizationResponseModel : ResponseModel
public ProfileOrganizationResponseModel(OrganizationUserOrganizationDetails organization) : this("profileOrganization") public ProfileOrganizationResponseModel(OrganizationUserOrganizationDetails organization) : this("profileOrganization")
{ {
Id = organization.OrganizationId.ToString(); Id = organization.OrganizationId;
Name = organization.Name; Name = organization.Name;
UsePolicies = organization.UsePolicies; UsePolicies = organization.UsePolicies;
UseSso = organization.UseSso; UseSso = organization.UseSso;
@ -46,8 +46,8 @@ public class ProfileOrganizationResponseModel : ResponseModel
Identifier = organization.Identifier; Identifier = organization.Identifier;
Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(organization.Permissions); Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(organization.Permissions);
ResetPasswordEnrolled = organization.ResetPasswordKey != null; ResetPasswordEnrolled = organization.ResetPasswordKey != null;
UserId = organization.UserId?.ToString(); UserId = organization.UserId;
ProviderId = organization.ProviderId?.ToString(); ProviderId = organization.ProviderId;
ProviderName = organization.ProviderName; ProviderName = organization.ProviderName;
ProviderType = organization.ProviderType; ProviderType = organization.ProviderType;
FamilySponsorshipFriendlyName = organization.FamilySponsorshipFriendlyName; FamilySponsorshipFriendlyName = organization.FamilySponsorshipFriendlyName;
@ -68,7 +68,7 @@ public class ProfileOrganizationResponseModel : ResponseModel
} }
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public bool UsePolicies { get; set; } public bool UsePolicies { get; set; }
public bool UseSso { get; set; } public bool UseSso { get; set; }
@ -97,9 +97,9 @@ public class ProfileOrganizationResponseModel : ResponseModel
public string Identifier { get; set; } public string Identifier { get; set; }
public Permissions Permissions { get; set; } public Permissions Permissions { get; set; }
public bool ResetPasswordEnrolled { get; set; } public bool ResetPasswordEnrolled { get; set; }
public string UserId { get; set; } public Guid? UserId { get; set; }
public bool HasPublicAndPrivateKeys { get; set; } public bool HasPublicAndPrivateKeys { get; set; }
public string ProviderId { get; set; } public Guid? ProviderId { get; set; }
public string ProviderName { get; set; } public string ProviderName { get; set; }
public ProviderType? ProviderType { get; set; } public ProviderType? ProviderType { get; set; }
public string FamilySponsorshipFriendlyName { get; set; } public string FamilySponsorshipFriendlyName { get; set; }

View File

@ -9,7 +9,7 @@ public class ProfileProviderOrganizationResponseModel : ProfileOrganizationRespo
public ProfileProviderOrganizationResponseModel(ProviderUserOrganizationDetails organization) public ProfileProviderOrganizationResponseModel(ProviderUserOrganizationDetails organization)
: base("profileProviderOrganization") : base("profileProviderOrganization")
{ {
Id = organization.OrganizationId.ToString(); Id = organization.OrganizationId;
Name = organization.Name; Name = organization.Name;
UsePolicies = organization.UsePolicies; UsePolicies = organization.UsePolicies;
UseSso = organization.UseSso; UseSso = organization.UseSso;
@ -39,8 +39,8 @@ public class ProfileProviderOrganizationResponseModel : ProfileOrganizationRespo
Identifier = organization.Identifier; Identifier = organization.Identifier;
Permissions = new Permissions(); Permissions = new Permissions();
ResetPasswordEnrolled = false; ResetPasswordEnrolled = false;
UserId = organization.UserId?.ToString(); UserId = organization.UserId;
ProviderId = organization.ProviderId?.ToString(); ProviderId = organization.ProviderId;
ProviderName = organization.ProviderName; ProviderName = organization.ProviderName;
PlanProductType = StaticStore.GetPasswordManagerPlan(organization.PlanType).Product; PlanProductType = StaticStore.GetPasswordManagerPlan(organization.PlanType).Product;
} }

View File

@ -20,7 +20,7 @@ public class ProfileResponseModel : ResponseModel
throw new ArgumentNullException(nameof(user)); throw new ArgumentNullException(nameof(user));
} }
Id = user.Id.ToString(); Id = user.Id;
Name = user.Name; Name = user.Name;
Email = user.Email; Email = user.Email;
EmailVerified = user.EmailVerified; EmailVerified = user.EmailVerified;
@ -45,7 +45,7 @@ public class ProfileResponseModel : ResponseModel
{ {
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Email { get; set; } public string Email { get; set; }
public bool EmailVerified { get; set; } public bool EmailVerified { get; set; }

View File

@ -10,24 +10,24 @@ public class ProfileProviderResponseModel : ResponseModel
public ProfileProviderResponseModel(ProviderUserProviderDetails provider) public ProfileProviderResponseModel(ProviderUserProviderDetails provider)
: base("profileProvider") : base("profileProvider")
{ {
Id = provider.ProviderId.ToString(); Id = provider.ProviderId;
Name = provider.Name; Name = provider.Name;
Key = provider.Key; Key = provider.Key;
Status = provider.Status; Status = provider.Status;
Type = provider.Type; Type = provider.Type;
Enabled = provider.Enabled; Enabled = provider.Enabled;
Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(provider.Permissions); Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(provider.Permissions);
UserId = provider.UserId?.ToString(); UserId = provider.UserId;
UseEvents = provider.UseEvents; UseEvents = provider.UseEvents;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Key { get; set; } public string Key { get; set; }
public ProviderUserStatusType Status { get; set; } public ProviderUserStatusType Status { get; set; }
public ProviderUserType Type { get; set; } public ProviderUserType Type { get; set; }
public bool Enabled { get; set; } public bool Enabled { get; set; }
public Permissions Permissions { get; set; } public Permissions Permissions { get; set; }
public string UserId { get; set; } public Guid? UserId { get; set; }
public bool UseEvents { get; set; } public bool UseEvents { get; set; }
} }

View File

@ -16,8 +16,8 @@ public class ProviderUserResponseModel : ResponseModel
throw new ArgumentNullException(nameof(providerUser)); throw new ArgumentNullException(nameof(providerUser));
} }
Id = providerUser.Id.ToString(); Id = providerUser.Id;
UserId = providerUser.UserId?.ToString(); UserId = providerUser.UserId;
Type = providerUser.Type; Type = providerUser.Type;
Status = providerUser.Status; Status = providerUser.Status;
Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(providerUser.Permissions); Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(providerUser.Permissions);
@ -31,15 +31,15 @@ public class ProviderUserResponseModel : ResponseModel
throw new ArgumentNullException(nameof(providerUser)); throw new ArgumentNullException(nameof(providerUser));
} }
Id = providerUser.Id.ToString(); Id = providerUser.Id;
UserId = providerUser.UserId?.ToString(); UserId = providerUser.UserId;
Type = providerUser.Type; Type = providerUser.Type;
Status = providerUser.Status; Status = providerUser.Status;
Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(providerUser.Permissions); Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(providerUser.Permissions);
} }
public string Id { get; set; } public Guid Id { get; set; }
public string UserId { get; set; } public Guid? UserId { get; set; }
public ProviderUserType Type { get; set; } public ProviderUserType Type { get; set; }
public ProviderUserStatusType Status { get; set; } public ProviderUserStatusType Status { get; set; }
public Permissions Permissions { get; set; } public Permissions Permissions { get; set; }

View File

@ -11,12 +11,12 @@ public class SelectionReadOnlyResponseModel
throw new ArgumentNullException(nameof(selection)); throw new ArgumentNullException(nameof(selection));
} }
Id = selection.Id.ToString(); Id = selection.Id;
ReadOnly = selection.ReadOnly; ReadOnly = selection.ReadOnly;
HidePasswords = selection.HidePasswords; HidePasswords = selection.HidePasswords;
} }
public string Id { get; set; } public Guid Id { get; set; }
public bool ReadOnly { get; set; } public bool ReadOnly { get; set; }
public bool HidePasswords { get; set; } public bool HidePasswords { get; set; }
} }

View File

@ -7,10 +7,10 @@ public class UserKeyResponseModel : ResponseModel
public UserKeyResponseModel(Guid id, string key) public UserKeyResponseModel(Guid id, string key)
: base("userKey") : base("userKey")
{ {
UserId = id.ToString(); UserId = id;
PublicKey = key; PublicKey = key;
} }
public string UserId { get; set; } public Guid UserId { get; set; }
public string PublicKey { get; set; } public string PublicKey { get; set; }
} }

View File

@ -32,7 +32,7 @@ public class SecretsManagerPortingController : Controller
} }
[HttpGet("sm/{organizationId}/export")] [HttpGet("sm/{organizationId}/export")]
public async Task<SMExportResponseModel> Export([FromRoute] Guid organizationId, [FromRoute] string format = "json") public async Task<SMExportResponseModel> Export([FromRoute] Guid organizationId)
{ {
if (!await _currentContext.OrganizationAdmin(organizationId) || !_currentContext.AccessSecretsManager(organizationId)) if (!await _currentContext.OrganizationAdmin(organizationId) || !_currentContext.AccessSecretsManager(organizationId))
{ {

View File

@ -17,7 +17,7 @@ public class PotentialGranteeResponseModel : ResponseModel
throw new ArgumentNullException(nameof(group)); throw new ArgumentNullException(nameof(group));
} }
Id = group.Id.ToString(); Id = group.Id;
Name = group.Name; Name = group.Name;
Type = "group"; Type = "group";
} }
@ -30,7 +30,7 @@ public class PotentialGranteeResponseModel : ResponseModel
throw new ArgumentNullException(nameof(user)); throw new ArgumentNullException(nameof(user));
} }
Id = user.Id.ToString(); Id = user.Id;
Name = user.Name; Name = user.Name;
Email = user.Email; Email = user.Email;
Type = "user"; Type = "user";
@ -44,7 +44,7 @@ public class PotentialGranteeResponseModel : ResponseModel
throw new ArgumentNullException(nameof(serviceAccount)); throw new ArgumentNullException(nameof(serviceAccount));
} }
Id = serviceAccount.Id.ToString(); Id = serviceAccount.Id;
Name = serviceAccount.Name; Name = serviceAccount.Name;
Type = "serviceAccount"; Type = "serviceAccount";
} }
@ -57,7 +57,7 @@ public class PotentialGranteeResponseModel : ResponseModel
throw new ArgumentNullException(nameof(project)); throw new ArgumentNullException(nameof(project));
} }
Id = project.Id.ToString(); Id = project.Id;
Name = project.Name; Name = project.Name;
Type = "project"; Type = "project";
} }
@ -66,7 +66,7 @@ public class PotentialGranteeResponseModel : ResponseModel
{ {
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }

View File

@ -16,8 +16,8 @@ public class ProjectResponseModel : ResponseModel
throw new ArgumentNullException(nameof(project)); throw new ArgumentNullException(nameof(project));
} }
Id = project.Id.ToString(); Id = project.Id;
OrganizationId = project.OrganizationId.ToString(); OrganizationId = project.OrganizationId;
Name = project.Name; Name = project.Name;
CreationDate = project.CreationDate; CreationDate = project.CreationDate;
RevisionDate = project.RevisionDate; RevisionDate = project.RevisionDate;
@ -33,8 +33,8 @@ public class ProjectResponseModel : ResponseModel
throw new ArgumentNullException(nameof(projectDetails)); throw new ArgumentNullException(nameof(projectDetails));
} }
Id = projectDetails.Project.Id.ToString(); Id = projectDetails.Project.Id;
OrganizationId = projectDetails.Project.OrganizationId.ToString(); OrganizationId = projectDetails.Project.OrganizationId;
Name = projectDetails.Project.Name; Name = projectDetails.Project.Name;
CreationDate = projectDetails.Project.CreationDate; CreationDate = projectDetails.Project.CreationDate;
RevisionDate = projectDetails.Project.RevisionDate; RevisionDate = projectDetails.Project.RevisionDate;
@ -46,9 +46,9 @@ public class ProjectResponseModel : ResponseModel
{ {
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Name { get; set; } public string Name { get; set; }

View File

@ -14,14 +14,14 @@ public class SecretResponseModel : ResponseModel
throw new ArgumentNullException(nameof(secret)); throw new ArgumentNullException(nameof(secret));
} }
Id = secret.Id.ToString(); Id = secret.Id;
OrganizationId = secret.OrganizationId.ToString(); OrganizationId = secret.OrganizationId;
Key = secret.Key; Key = secret.Key;
Value = secret.Value; Value = secret.Value;
Note = secret.Note; Note = secret.Note;
CreationDate = secret.CreationDate; CreationDate = secret.CreationDate;
RevisionDate = secret.RevisionDate; RevisionDate = secret.RevisionDate;
Projects = secret.Projects?.Select(p => new InnerProject(p)); Projects = secret.Projects?.Select(p => new SecretResponseInnerProject(p));
Read = read; Read = read;
Write = write; Write = write;
@ -31,9 +31,9 @@ public class SecretResponseModel : ResponseModel
{ {
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Key { get; set; } public string Key { get; set; }
@ -45,21 +45,21 @@ public class SecretResponseModel : ResponseModel
public DateTime RevisionDate { get; set; } public DateTime RevisionDate { get; set; }
public IEnumerable<InnerProject> Projects { get; set; } public IEnumerable<SecretResponseInnerProject> Projects { get; set; }
public bool Read { get; set; } public bool Read { get; set; }
public bool Write { get; set; } public bool Write { get; set; }
public class InnerProject public class SecretResponseInnerProject
{ {
public InnerProject(Project project) public SecretResponseInnerProject(Project project)
{ {
Id = project.Id; Id = project.Id;
Name = project.Name; Name = project.Name;
} }
public InnerProject() public SecretResponseInnerProject()
{ {
} }

View File

@ -10,26 +10,26 @@ public class SecretWithProjectsListResponseModel : ResponseModel
public SecretWithProjectsListResponseModel(IEnumerable<SecretPermissionDetails> secrets) : base(_objectName) public SecretWithProjectsListResponseModel(IEnumerable<SecretPermissionDetails> secrets) : base(_objectName)
{ {
Secrets = secrets.Select(s => new InnerSecret(s)); Secrets = secrets.Select(s => new SecretsWithProjectsInnerSecret(s));
Projects = secrets.SelectMany(s => s.Secret.Projects).DistinctBy(p => p.Id).Select(p => new InnerProject(p)); Projects = secrets.SelectMany(s => s.Secret.Projects).DistinctBy(p => p.Id).Select(p => new SecretWithProjectsInnerProject(p));
} }
public SecretWithProjectsListResponseModel() : base(_objectName) public SecretWithProjectsListResponseModel() : base(_objectName)
{ {
} }
public IEnumerable<InnerSecret> Secrets { get; set; } public IEnumerable<SecretsWithProjectsInnerSecret> Secrets { get; set; }
public IEnumerable<InnerProject> Projects { get; set; } public IEnumerable<SecretWithProjectsInnerProject> Projects { get; set; }
public class InnerProject public class SecretWithProjectsInnerProject
{ {
public InnerProject(Project project) public SecretWithProjectsInnerProject(Project project)
{ {
Id = project.Id; Id = project.Id;
Name = project.Name; Name = project.Name;
} }
public InnerProject() public SecretWithProjectsInnerProject()
{ {
} }
@ -37,27 +37,27 @@ public class SecretWithProjectsListResponseModel : ResponseModel
public string Name { get; set; } public string Name { get; set; }
} }
public class InnerSecret public class SecretsWithProjectsInnerSecret
{ {
public InnerSecret(SecretPermissionDetails secret) public SecretsWithProjectsInnerSecret(SecretPermissionDetails secret)
{ {
Id = secret.Secret.Id.ToString(); Id = secret.Secret.Id;
OrganizationId = secret.Secret.OrganizationId.ToString(); OrganizationId = secret.Secret.OrganizationId;
Key = secret.Secret.Key; Key = secret.Secret.Key;
CreationDate = secret.Secret.CreationDate; CreationDate = secret.Secret.CreationDate;
RevisionDate = secret.Secret.RevisionDate; RevisionDate = secret.Secret.RevisionDate;
Projects = secret.Secret.Projects?.Select(p => new InnerProject(p)); Projects = secret.Secret.Projects?.Select(p => new SecretWithProjectsInnerProject(p));
Read = secret.Read; Read = secret.Read;
Write = secret.Write; Write = secret.Write;
} }
public InnerSecret() public SecretsWithProjectsInnerSecret()
{ {
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Key { get; set; } public string Key { get; set; }
@ -65,7 +65,7 @@ public class SecretWithProjectsListResponseModel : ResponseModel
public DateTime RevisionDate { get; set; } public DateTime RevisionDate { get; set; }
public IEnumerable<InnerProject> Projects { get; set; } public IEnumerable<SecretWithProjectsInnerProject> Projects { get; set; }
public bool Read { get; set; } public bool Read { get; set; }
public bool Write { get; set; } public bool Write { get; set; }
} }

View File

@ -14,8 +14,8 @@ public class ServiceAccountResponseModel : ResponseModel
throw new ArgumentNullException(nameof(serviceAccount)); throw new ArgumentNullException(nameof(serviceAccount));
} }
Id = serviceAccount.Id.ToString(); Id = serviceAccount.Id;
OrganizationId = serviceAccount.OrganizationId.ToString(); OrganizationId = serviceAccount.OrganizationId;
Name = serviceAccount.Name; Name = serviceAccount.Name;
CreationDate = serviceAccount.CreationDate; CreationDate = serviceAccount.CreationDate;
RevisionDate = serviceAccount.RevisionDate; RevisionDate = serviceAccount.RevisionDate;
@ -25,9 +25,9 @@ public class ServiceAccountResponseModel : ResponseModel
{ {
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public string Name { get; set; } public string Name { get; set; }

View File

@ -18,7 +18,7 @@ public class SendResponseModel : ResponseModel
throw new ArgumentNullException(nameof(send)); throw new ArgumentNullException(nameof(send));
} }
Id = send.Id.ToString(); Id = send.Id;
AccessId = CoreHelpers.Base64UrlEncode(send.Id.ToByteArray()); AccessId = CoreHelpers.Base64UrlEncode(send.Id.ToByteArray());
Type = send.Type; Type = send.Type;
Key = send.Key; Key = send.Key;
@ -52,7 +52,7 @@ public class SendResponseModel : ResponseModel
Notes = sendData.Notes; Notes = sendData.Notes;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string AccessId { get; set; } public string AccessId { get; set; }
public SendType Type { get; set; } public SendType Type { get; set; }
public string Name { get; set; } public string Name { get; set; }

View File

@ -18,7 +18,7 @@ public class CipherMiniResponseModel : ResponseModel
throw new ArgumentNullException(nameof(cipher)); throw new ArgumentNullException(nameof(cipher));
} }
Id = cipher.Id.ToString(); Id = cipher.Id;
Type = cipher.Type; Type = cipher.Type;
CipherData cipherData; CipherData cipherData;
@ -57,7 +57,7 @@ public class CipherMiniResponseModel : ResponseModel
Fields = cipherData.Fields?.Select(f => new CipherFieldModel(f)); Fields = cipherData.Fields?.Select(f => new CipherFieldModel(f));
PasswordHistory = cipherData.PasswordHistory?.Select(ph => new CipherPasswordHistoryModel(ph)); PasswordHistory = cipherData.PasswordHistory?.Select(ph => new CipherPasswordHistoryModel(ph));
RevisionDate = cipher.RevisionDate; RevisionDate = cipher.RevisionDate;
OrganizationId = cipher.OrganizationId?.ToString(); OrganizationId = cipher.OrganizationId;
Attachments = AttachmentResponseModel.FromCipher(cipher, globalSettings); Attachments = AttachmentResponseModel.FromCipher(cipher, globalSettings);
OrganizationUseTotp = orgUseTotp; OrganizationUseTotp = orgUseTotp;
CreationDate = cipher.CreationDate; CreationDate = cipher.CreationDate;
@ -65,8 +65,8 @@ public class CipherMiniResponseModel : ResponseModel
Reprompt = cipher.Reprompt.GetValueOrDefault(CipherRepromptType.None); Reprompt = cipher.Reprompt.GetValueOrDefault(CipherRepromptType.None);
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid? OrganizationId { get; set; }
public CipherType Type { get; set; } public CipherType Type { get; set; }
public dynamic Data { get; set; } public dynamic Data { get; set; }
public string Name { get; set; } public string Name { get; set; }
@ -90,13 +90,13 @@ public class CipherResponseModel : CipherMiniResponseModel
public CipherResponseModel(CipherDetails cipher, IGlobalSettings globalSettings, string obj = "cipher") public CipherResponseModel(CipherDetails cipher, IGlobalSettings globalSettings, string obj = "cipher")
: base(cipher, globalSettings, cipher.OrganizationUseTotp, obj) : base(cipher, globalSettings, cipher.OrganizationUseTotp, obj)
{ {
FolderId = cipher.FolderId?.ToString(); FolderId = cipher.FolderId;
Favorite = cipher.Favorite; Favorite = cipher.Favorite;
Edit = cipher.Edit; Edit = cipher.Edit;
ViewPassword = cipher.ViewPassword; ViewPassword = cipher.ViewPassword;
} }
public string FolderId { get; set; } public Guid? FolderId { get; set; }
public bool Favorite { get; set; } public bool Favorite { get; set; }
public bool Edit { get; set; } public bool Edit { get; set; }
public bool ViewPassword { get; set; } public bool ViewPassword { get; set; }

View File

@ -13,12 +13,12 @@ public class FolderResponseModel : ResponseModel
throw new ArgumentNullException(nameof(folder)); throw new ArgumentNullException(nameof(folder));
} }
Id = folder.Id.ToString(); Id = folder.Id;
Name = folder.Name; Name = folder.Name;
RevisionDate = folder.RevisionDate; RevisionDate = folder.RevisionDate;
} }
public string Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public DateTime RevisionDate { get; set; } public DateTime RevisionDate { get; set; }
} }

View File

@ -14,8 +14,8 @@ public class PolicyResponseModel : ResponseModel
throw new ArgumentNullException(nameof(policy)); throw new ArgumentNullException(nameof(policy));
} }
Id = policy.Id.ToString(); Id = policy.Id;
OrganizationId = policy.OrganizationId.ToString(); OrganizationId = policy.OrganizationId;
Type = policy.Type; Type = policy.Type;
Enabled = policy.Enabled; Enabled = policy.Enabled;
if (!string.IsNullOrWhiteSpace(policy.Data)) if (!string.IsNullOrWhiteSpace(policy.Data))
@ -24,8 +24,8 @@ public class PolicyResponseModel : ResponseModel
} }
} }
public string Id { get; set; } public Guid Id { get; set; }
public string OrganizationId { get; set; } public Guid OrganizationId { get; set; }
public PolicyType Type { get; set; } public PolicyType Type { get; set; }
public Dictionary<string, object> Data { get; set; } public Dictionary<string, object> Data { get; set; }
public bool Enabled { get; set; } public bool Enabled { get; set; }

View File

@ -24,8 +24,6 @@ public class AccountsControllerTest : IClassFixture<ApiApplicationFactory>
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
var content = await response.Content.ReadFromJsonAsync<ProfileResponseModel>(); var content = await response.Content.ReadFromJsonAsync<ProfileResponseModel>();
Assert.NotEmpty(content!.Id);
Assert.Equal("integration-test@bitwarden.com", content.Email); Assert.Equal("integration-test@bitwarden.com", content.Email);
Assert.Null(content.Name); Assert.Null(content.Name);
Assert.False(content.EmailVerified); Assert.False(content.EmailVerified);

View File

@ -513,7 +513,7 @@ public class AccessPoliciesControllerTests : IClassFixture<ApiApplicationFactory
Assert.NotNull(result?.Data); Assert.NotNull(result?.Data);
Assert.NotEmpty(result!.Data); Assert.NotEmpty(result!.Data);
Assert.Equal(serviceAccount.Id.ToString(), result.Data.First(x => x.Id == serviceAccount.Id.ToString()).Id); Assert.Equal(serviceAccount.Id, result.Data.First(x => x.Id == serviceAccount.Id).Id);
} }
[Theory] [Theory]
@ -591,7 +591,7 @@ public class AccessPoliciesControllerTests : IClassFixture<ApiApplicationFactory
Assert.NotNull(result?.Data); Assert.NotNull(result?.Data);
Assert.NotEmpty(result!.Data); Assert.NotEmpty(result!.Data);
Assert.Equal(project.Id.ToString(), result.Data.First(x => x.Id == project.Id.ToString()).Id); Assert.Equal(project.Id, result.Data.First(x => x.Id == project.Id).Id);
} }
[Theory] [Theory]

View File

@ -144,7 +144,7 @@ public class ProjectsControllerTests : IClassFixture<ApiApplicationFactory>, IAs
AssertHelper.AssertRecent(result.RevisionDate); AssertHelper.AssertRecent(result.RevisionDate);
AssertHelper.AssertRecent(result.CreationDate); AssertHelper.AssertRecent(result.CreationDate);
var createdProject = await _projectRepository.GetByIdAsync(new Guid(result.Id)); var createdProject = await _projectRepository.GetByIdAsync(result.Id);
Assert.NotNull(result); Assert.NotNull(result);
Assert.Equal(request.Name, createdProject.Name); Assert.Equal(request.Name, createdProject.Name);
AssertHelper.AssertRecent(createdProject.RevisionDate); AssertHelper.AssertRecent(createdProject.RevisionDate);
@ -205,7 +205,7 @@ public class ProjectsControllerTests : IClassFixture<ApiApplicationFactory>, IAs
AssertHelper.AssertRecent(result.RevisionDate); AssertHelper.AssertRecent(result.RevisionDate);
Assert.NotEqual(initialProject.RevisionDate, result.RevisionDate); Assert.NotEqual(initialProject.RevisionDate, result.RevisionDate);
var updatedProject = await _projectRepository.GetByIdAsync(new Guid(result.Id)); var updatedProject = await _projectRepository.GetByIdAsync(result.Id);
Assert.NotNull(result); Assert.NotNull(result);
Assert.Equal(request.Name, updatedProject.Name); Assert.Equal(request.Name, updatedProject.Name);
AssertHelper.AssertRecent(updatedProject.RevisionDate); AssertHelper.AssertRecent(updatedProject.RevisionDate);

View File

@ -166,7 +166,7 @@ public class SecretsControllerTests : IClassFixture<ApiApplicationFactory>, IAsy
AssertHelper.AssertRecent(result.RevisionDate); AssertHelper.AssertRecent(result.RevisionDate);
AssertHelper.AssertRecent(result.CreationDate); AssertHelper.AssertRecent(result.CreationDate);
var createdSecret = await _secretRepository.GetByIdAsync(new Guid(result.Id)); var createdSecret = await _secretRepository.GetByIdAsync(result.Id);
Assert.NotNull(result); Assert.NotNull(result);
Assert.Equal(request.Key, createdSecret.Key); Assert.Equal(request.Key, createdSecret.Key);
Assert.Equal(request.Value, createdSecret.Value); Assert.Equal(request.Value, createdSecret.Value);
@ -286,8 +286,8 @@ public class SecretsControllerTests : IClassFixture<ApiApplicationFactory>, IAsy
var secret = result.Secret; var secret = result.Secret;
Assert.NotNull(secretResult); Assert.NotNull(secretResult);
Assert.Equal(secret.Id.ToString(), secretResult!.Id); Assert.Equal(secret.Id, secretResult!.Id);
Assert.Equal(secret.OrganizationId.ToString(), secretResult.OrganizationId); Assert.Equal(secret.OrganizationId, secretResult.OrganizationId);
Assert.Equal(secret.Key, secretResult.Key); Assert.Equal(secret.Key, secretResult.Key);
Assert.Equal(secret.Value, secretResult.Value); Assert.Equal(secret.Value, secretResult.Value);
Assert.Equal(secret.Note, secretResult.Note); Assert.Equal(secret.Note, secretResult.Note);
@ -463,8 +463,8 @@ public class SecretsControllerTests : IClassFixture<ApiApplicationFactory>, IAsy
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
var result = await response.Content.ReadFromJsonAsync<SecretWithProjectsListResponseModel>(); var result = await response.Content.ReadFromJsonAsync<SecretWithProjectsListResponseModel>();
Assert.NotEmpty(result!.Secrets); Assert.NotEmpty(result!.Secrets);
Assert.Equal(secret.Id.ToString(), result.Secrets.First().Id); Assert.Equal(secret.Id, result.Secrets.First().Id);
Assert.Equal(secret.OrganizationId.ToString(), result.Secrets.First().OrganizationId); Assert.Equal(secret.OrganizationId, result.Secrets.First().OrganizationId);
Assert.Equal(secret.Key, result.Secrets.First().Key); Assert.Equal(secret.Key, result.Secrets.First().Key);
Assert.Equal(secret.CreationDate, result.Secrets.First().CreationDate); Assert.Equal(secret.CreationDate, result.Secrets.First().CreationDate);
Assert.Equal(secret.RevisionDate, result.Secrets.First().RevisionDate); Assert.Equal(secret.RevisionDate, result.Secrets.First().RevisionDate);
@ -557,7 +557,7 @@ public class SecretsControllerTests : IClassFixture<ApiApplicationFactory>, IAsy
AssertHelper.AssertRecent(result.RevisionDate); AssertHelper.AssertRecent(result.RevisionDate);
Assert.NotEqual(secret.RevisionDate, result.RevisionDate); Assert.NotEqual(secret.RevisionDate, result.RevisionDate);
var updatedSecret = await _secretRepository.GetByIdAsync(new Guid(result.Id)); var updatedSecret = await _secretRepository.GetByIdAsync(result.Id);
Assert.NotNull(result); Assert.NotNull(result);
Assert.Equal(request.Key, updatedSecret.Key); Assert.Equal(request.Key, updatedSecret.Key);
Assert.Equal(request.Value, updatedSecret.Value); Assert.Equal(request.Value, updatedSecret.Value);

View File

@ -177,8 +177,8 @@ public class ServiceAccountsControllerTests : IClassFixture<ApiApplicationFactor
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
var result = await response.Content.ReadFromJsonAsync<ServiceAccountResponseModel>(); var result = await response.Content.ReadFromJsonAsync<ServiceAccountResponseModel>();
Assert.NotNull(result); Assert.NotNull(result);
Assert.Equal(serviceAccount.Id.ToString(), result!.Id); Assert.Equal(serviceAccount.Id, result!.Id);
Assert.Equal(serviceAccount.OrganizationId.ToString(), result.OrganizationId); Assert.Equal(serviceAccount.OrganizationId, result.OrganizationId);
Assert.Equal(serviceAccount.Name, result.Name); Assert.Equal(serviceAccount.Name, result.Name);
Assert.Equal(serviceAccount.CreationDate, result.CreationDate); Assert.Equal(serviceAccount.CreationDate, result.CreationDate);
Assert.Equal(serviceAccount.RevisionDate, result.RevisionDate); Assert.Equal(serviceAccount.RevisionDate, result.RevisionDate);
@ -229,7 +229,7 @@ public class ServiceAccountsControllerTests : IClassFixture<ApiApplicationFactor
AssertHelper.AssertRecent(result.RevisionDate); AssertHelper.AssertRecent(result.RevisionDate);
AssertHelper.AssertRecent(result.CreationDate); AssertHelper.AssertRecent(result.CreationDate);
var createdServiceAccount = await _serviceAccountRepository.GetByIdAsync(new Guid(result.Id)); var createdServiceAccount = await _serviceAccountRepository.GetByIdAsync(result.Id);
Assert.NotNull(result); Assert.NotNull(result);
Assert.Equal(request.Name, createdServiceAccount.Name); Assert.Equal(request.Name, createdServiceAccount.Name);
AssertHelper.AssertRecent(createdServiceAccount.RevisionDate); AssertHelper.AssertRecent(createdServiceAccount.RevisionDate);

View File

@ -33,10 +33,8 @@ public class GroupsControllerTests
organization, organization,
Arg.Any<IEnumerable<CollectionAccessSelection>>(), Arg.Any<IEnumerable<CollectionAccessSelection>>(),
Arg.Any<IEnumerable<Guid>>()); Arg.Any<IEnumerable<Guid>>());
Assert.NotNull(response.Id);
Assert.Equal(groupRequestModel.Name, response.Name); Assert.Equal(groupRequestModel.Name, response.Name);
Assert.Equal(organization.Id.ToString(), response.OrganizationId); Assert.Equal(organization.Id, response.OrganizationId);
Assert.Equal(groupRequestModel.AccessAll, response.AccessAll); Assert.Equal(groupRequestModel.AccessAll, response.AccessAll);
} }
@ -60,10 +58,8 @@ public class GroupsControllerTests
Arg.Is<Organization>(o => o.Id == organization.Id), Arg.Is<Organization>(o => o.Id == organization.Id),
Arg.Any<IEnumerable<CollectionAccessSelection>>(), Arg.Any<IEnumerable<CollectionAccessSelection>>(),
Arg.Any<IEnumerable<Guid>>()); Arg.Any<IEnumerable<Guid>>());
Assert.NotNull(response.Id);
Assert.Equal(groupRequestModel.Name, response.Name); Assert.Equal(groupRequestModel.Name, response.Name);
Assert.Equal(organization.Id.ToString(), response.OrganizationId); Assert.Equal(organization.Id, response.OrganizationId);
Assert.Equal(groupRequestModel.AccessAll, response.AccessAll); Assert.Equal(groupRequestModel.AccessAll, response.AccessAll);
} }
} }

View File

@ -67,7 +67,7 @@ public class OrganizationDomainControllerTests
var result = await sutProvider.Sut.Get(orgId.ToString()); var result = await sutProvider.Sut.Get(orgId.ToString());
Assert.IsType<ListResponseModel<OrganizationDomainResponseModel>>(result); Assert.IsType<ListResponseModel<OrganizationDomainResponseModel>>(result);
Assert.Equal(orgId.ToString(), result.Data.Select(x => x.OrganizationId).FirstOrDefault()); Assert.Equal(orgId, result.Data.Select(x => x.OrganizationId).FirstOrDefault());
} }
[Theory, BitAutoData] [Theory, BitAutoData]
@ -125,7 +125,7 @@ public class OrganizationDomainControllerTests
var result = await sutProvider.Sut.Get(orgId.ToString(), id.ToString()); var result = await sutProvider.Sut.Get(orgId.ToString(), id.ToString());
Assert.IsType<OrganizationDomainResponseModel>(result); Assert.IsType<OrganizationDomainResponseModel>(result);
Assert.Equal(orgId.ToString(), result.OrganizationId); Assert.Equal(orgId, result.OrganizationId);
} }
[Theory, BitAutoData] [Theory, BitAutoData]

View File

@ -39,7 +39,7 @@ public class CiphersControllerTests
var result = await sutProvider.Sut.PutPartial(cipherId.ToString(), new CipherPartialRequestModel { Favorite = isFavorite, FolderId = folderId.ToString() }); var result = await sutProvider.Sut.PutPartial(cipherId.ToString(), new CipherPartialRequestModel { Favorite = isFavorite, FolderId = folderId.ToString() });
Assert.Equal(folderId.ToString(), result.FolderId); Assert.Equal(folderId, result.FolderId);
Assert.Equal(isFavorite, result.Favorite); Assert.Equal(isFavorite, result.Favorite);
} }
} }

View File

@ -301,7 +301,7 @@ public class SyncControllerTests
foreach (var profProviderOrg in result.Profile.ProviderOrganizations) foreach (var profProviderOrg in result.Profile.ProviderOrganizations)
{ {
var matchedProviderUserOrgDetails = var matchedProviderUserOrgDetails =
providerUserOrganizationDetails.FirstOrDefault(p => p.OrganizationId.ToString() == profProviderOrg.Id); providerUserOrganizationDetails.FirstOrDefault(p => p.OrganizationId == profProviderOrg.Id);
if (matchedProviderUserOrgDetails != null) if (matchedProviderUserOrgDetails != null)
{ {