mirror of
https://github.com/bitwarden/server.git
synced 2025-07-01 16:12:49 -05:00
[AC-1139] Updated BulkCollectionAuthorizationHandler to not fail if the resource list is null or empty.
This commit is contained in:
@ -44,14 +44,12 @@ public class BulkCollectionAuthorizationHandler : BulkAuthorizationHandler<Colle
|
|||||||
// Establish pattern of authorization handler null checking passed resources
|
// Establish pattern of authorization handler null checking passed resources
|
||||||
if (resources == null || !resources.Any() || !_currentContext.UserId.HasValue)
|
if (resources == null || !resources.Any() || !_currentContext.UserId.HasValue)
|
||||||
{
|
{
|
||||||
context.Fail();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var targetOrganizationId = resources.FirstOrDefault()?.OrganizationId ?? default;
|
var targetOrganizationId = resources.FirstOrDefault()?.OrganizationId ?? default;
|
||||||
if (targetOrganizationId == default)
|
if (targetOrganizationId == default)
|
||||||
{
|
{
|
||||||
context.Fail();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +35,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.CreateNewCollections = createNewCollection;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
CreateNewCollections = createNewCollection
|
||||||
|
};
|
||||||
organization.LimitCollectionCreationDeletion = limitCollectionCreateDelete;
|
organization.LimitCollectionCreationDeletion = limitCollectionCreateDelete;
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
@ -60,7 +63,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
organization.Permissions.CreateNewCollections = false;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
CreateNewCollections = false
|
||||||
|
};
|
||||||
organization.LimitCollectionCreationDeletion = true;
|
organization.LimitCollectionCreationDeletion = true;
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
@ -89,7 +95,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.CreateNewCollections = false;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
CreateNewCollections = false
|
||||||
|
};
|
||||||
organization.LimitCollectionCreationDeletion = true;
|
organization.LimitCollectionCreationDeletion = true;
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
@ -117,6 +126,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Read },
|
new[] { CollectionOperations.Read },
|
||||||
@ -140,6 +150,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Read },
|
new[] { CollectionOperations.Read },
|
||||||
@ -167,8 +178,11 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.Custom;
|
organization.Type = OrganizationUserType.Custom;
|
||||||
organization.Permissions.EditAnyCollection = editAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = deleteAnyCollection;
|
{
|
||||||
|
EditAnyCollection = editAnyCollection,
|
||||||
|
DeleteAnyCollection = deleteAnyCollection
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Read },
|
new[] { CollectionOperations.Read },
|
||||||
@ -192,6 +206,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Read },
|
new[] { CollectionOperations.Read },
|
||||||
@ -219,8 +234,11 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = false;
|
{
|
||||||
|
EditAnyCollection = false,
|
||||||
|
DeleteAnyCollection = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Read },
|
new[] { CollectionOperations.Read },
|
||||||
@ -247,6 +265,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAccess },
|
new[] { CollectionOperations.ReadAccess },
|
||||||
@ -270,6 +289,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAccess },
|
new[] { CollectionOperations.ReadAccess },
|
||||||
@ -297,8 +317,11 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.Custom;
|
organization.Type = OrganizationUserType.Custom;
|
||||||
organization.Permissions.EditAnyCollection = editAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = deleteAnyCollection;
|
{
|
||||||
|
EditAnyCollection = editAnyCollection,
|
||||||
|
DeleteAnyCollection = deleteAnyCollection
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAccess },
|
new[] { CollectionOperations.ReadAccess },
|
||||||
@ -322,6 +345,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAccess },
|
new[] { CollectionOperations.ReadAccess },
|
||||||
@ -349,8 +373,11 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = false;
|
{
|
||||||
|
EditAnyCollection = false,
|
||||||
|
DeleteAnyCollection = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAccess },
|
new[] { CollectionOperations.ReadAccess },
|
||||||
@ -385,7 +412,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.EditAnyCollection = editAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
EditAnyCollection = editAnyCollection
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Update },
|
new[] { CollectionOperations.Update },
|
||||||
@ -410,7 +440,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Update },
|
new[] { CollectionOperations.Update },
|
||||||
@ -444,7 +474,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
|
|
||||||
// Ensure the user is not an owner/admin and does not have edit any collection permission
|
// Ensure the user is not an owner/admin and does not have edit any collection permission
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
EditAnyCollection = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Update },
|
new[] { CollectionOperations.Update },
|
||||||
@ -483,7 +516,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.EditAnyCollection = editAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
EditAnyCollection = editAnyCollection
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ModifyAccess },
|
new[] { CollectionOperations.ModifyAccess },
|
||||||
@ -508,7 +544,7 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ModifyAccess },
|
new[] { CollectionOperations.ModifyAccess },
|
||||||
@ -542,7 +578,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
|
|
||||||
// Ensure the user is not an owner/admin and does not have edit any collection permission
|
// Ensure the user is not an owner/admin and does not have edit any collection permission
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
EditAnyCollection = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ModifyAccess },
|
new[] { CollectionOperations.ModifyAccess },
|
||||||
@ -580,7 +619,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.DeleteAnyCollection = deleteAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
DeleteAnyCollection = deleteAnyCollection
|
||||||
|
};
|
||||||
organization.LimitCollectionCreationDeletion = limitCollectionCreateDelete;
|
organization.LimitCollectionCreationDeletion = limitCollectionCreateDelete;
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
@ -606,7 +648,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
organization.Permissions.DeleteAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
DeleteAnyCollection = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Delete },
|
new[] { CollectionOperations.Delete },
|
||||||
@ -631,7 +676,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.Custom;
|
organization.Type = OrganizationUserType.Custom;
|
||||||
organization.Permissions.DeleteAnyCollection = true;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
DeleteAnyCollection = true
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Delete },
|
new[] { CollectionOperations.Delete },
|
||||||
@ -658,7 +706,10 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.DeleteAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
|
{
|
||||||
|
DeleteAnyCollection = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.Delete },
|
new[] { CollectionOperations.Delete },
|
||||||
@ -674,7 +725,39 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Theory, BitAutoData, CollectionCustomization]
|
[Theory, BitAutoData, CollectionCustomization]
|
||||||
public async Task HandleRequirementAsync_MissingUserId_Failure(
|
public async Task HandleRequirementAsync_NullResource_NoSuccessOrFailure(
|
||||||
|
SutProvider<BulkCollectionAuthorizationHandler> sutProvider)
|
||||||
|
{
|
||||||
|
var context = new AuthorizationHandlerContext(
|
||||||
|
new[] { CollectionOperations.Create },
|
||||||
|
new ClaimsPrincipal(),
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
|
await sutProvider.Sut.HandleAsync(context);
|
||||||
|
|
||||||
|
Assert.False(context.HasSucceeded);
|
||||||
|
Assert.False(context.HasFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory, BitAutoData, CollectionCustomization]
|
||||||
|
public async Task HandleRequirementAsync_EmptyResourceList_NoSuccessOrFailure(
|
||||||
|
SutProvider<BulkCollectionAuthorizationHandler> sutProvider)
|
||||||
|
{
|
||||||
|
var context = new AuthorizationHandlerContext(
|
||||||
|
new[] { CollectionOperations.Create },
|
||||||
|
new ClaimsPrincipal(),
|
||||||
|
new List<Collection>()
|
||||||
|
);
|
||||||
|
|
||||||
|
await sutProvider.Sut.HandleAsync(context);
|
||||||
|
|
||||||
|
Assert.False(context.HasSucceeded);
|
||||||
|
Assert.False(context.HasFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory, BitAutoData, CollectionCustomization]
|
||||||
|
public async Task HandleRequirementAsync_MissingUserId_NoSuccessOrFailure(
|
||||||
SutProvider<BulkCollectionAuthorizationHandler> sutProvider,
|
SutProvider<BulkCollectionAuthorizationHandler> sutProvider,
|
||||||
ICollection<Collection> collections)
|
ICollection<Collection> collections)
|
||||||
{
|
{
|
||||||
@ -688,7 +771,8 @@ public class BulkCollectionAuthorizationHandlerTests
|
|||||||
sutProvider.GetDependency<ICurrentContext>().UserId.Returns((Guid?)null);
|
sutProvider.GetDependency<ICurrentContext>().UserId.Returns((Guid?)null);
|
||||||
|
|
||||||
await sutProvider.Sut.HandleAsync(context);
|
await sutProvider.Sut.HandleAsync(context);
|
||||||
Assert.True(context.HasFailed);
|
Assert.False(context.HasSucceeded);
|
||||||
|
Assert.False(context.HasFailed);
|
||||||
sutProvider.GetDependency<ICollectionRepository>().DidNotReceiveWithAnyArgs();
|
sutProvider.GetDependency<ICollectionRepository>().DidNotReceiveWithAnyArgs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
CurrentContextOrganization organization)
|
CurrentContextOrganization organization)
|
||||||
{
|
{
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAll(organization.Id) },
|
new[] { CollectionOperations.ReadAll(organization.Id) },
|
||||||
@ -46,6 +47,7 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
SutProvider<CollectionAuthorizationHandler> sutProvider, CurrentContextOrganization organization)
|
SutProvider<CollectionAuthorizationHandler> sutProvider, CurrentContextOrganization organization)
|
||||||
{
|
{
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAll(organization.Id) },
|
new[] { CollectionOperations.ReadAll(organization.Id) },
|
||||||
@ -76,9 +78,12 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.Custom;
|
organization.Type = OrganizationUserType.Custom;
|
||||||
organization.Permissions.EditAnyCollection = editAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = deleteAnyCollection;
|
{
|
||||||
organization.Permissions.AccessImportExport = accessImportExport;
|
EditAnyCollection = editAnyCollection,
|
||||||
|
DeleteAnyCollection = deleteAnyCollection,
|
||||||
|
AccessImportExport = accessImportExport
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAll(organization.Id) },
|
new[] { CollectionOperations.ReadAll(organization.Id) },
|
||||||
@ -104,9 +109,12 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = false;
|
{
|
||||||
organization.Permissions.AccessImportExport = false;
|
EditAnyCollection = false,
|
||||||
|
DeleteAnyCollection = false,
|
||||||
|
AccessImportExport = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAll(organization.Id) },
|
new[] { CollectionOperations.ReadAll(organization.Id) },
|
||||||
@ -130,6 +138,7 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
CurrentContextOrganization organization)
|
CurrentContextOrganization organization)
|
||||||
{
|
{
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
||||||
@ -150,6 +159,7 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
SutProvider<CollectionAuthorizationHandler> sutProvider, CurrentContextOrganization organization)
|
SutProvider<CollectionAuthorizationHandler> sutProvider, CurrentContextOrganization organization)
|
||||||
{
|
{
|
||||||
organization.Type = OrganizationUserType.User;
|
organization.Type = OrganizationUserType.User;
|
||||||
|
organization.Permissions = new Permissions();
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
||||||
@ -169,20 +179,21 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[BitAutoData(true, false, false)]
|
[BitAutoData(true, false)]
|
||||||
[BitAutoData(false, true, false)]
|
[BitAutoData(false, true)]
|
||||||
[BitAutoData(false, false, true)]
|
|
||||||
public async Task CanReadAllWithAccessAsync_WhenCustomUserWithRequiredPermissions_Success(
|
public async Task CanReadAllWithAccessAsync_WhenCustomUserWithRequiredPermissions_Success(
|
||||||
bool editAnyCollection, bool deleteAnyCollection, bool accessImportExport,
|
bool editAnyCollection, bool deleteAnyCollection,
|
||||||
SutProvider<CollectionAuthorizationHandler> sutProvider,
|
SutProvider<CollectionAuthorizationHandler> sutProvider,
|
||||||
CurrentContextOrganization organization)
|
CurrentContextOrganization organization)
|
||||||
{
|
{
|
||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = OrganizationUserType.Custom;
|
organization.Type = OrganizationUserType.Custom;
|
||||||
organization.Permissions.EditAnyCollection = editAnyCollection;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = deleteAnyCollection;
|
{
|
||||||
organization.Permissions.AccessImportExport = accessImportExport;
|
EditAnyCollection = editAnyCollection,
|
||||||
|
DeleteAnyCollection = deleteAnyCollection,
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
||||||
@ -208,9 +219,12 @@ public class CollectionAuthorizationHandlerTests
|
|||||||
var actingUserId = Guid.NewGuid();
|
var actingUserId = Guid.NewGuid();
|
||||||
|
|
||||||
organization.Type = userType;
|
organization.Type = userType;
|
||||||
organization.Permissions.EditAnyCollection = false;
|
organization.Permissions = new Permissions
|
||||||
organization.Permissions.DeleteAnyCollection = false;
|
{
|
||||||
organization.Permissions.AccessImportExport = false;
|
EditAnyCollection = false,
|
||||||
|
DeleteAnyCollection = false,
|
||||||
|
AccessImportExport = false
|
||||||
|
};
|
||||||
|
|
||||||
var context = new AuthorizationHandlerContext(
|
var context = new AuthorizationHandlerContext(
|
||||||
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
new[] { CollectionOperations.ReadAllWithAccess(organization.Id) },
|
||||||
|
Reference in New Issue
Block a user