public void Should_Return_Default_List_Wit_Principal_Added() { RunActionInTransaction(session => { var collection = new AccessControlCollection(); collection.Add(new AccessControlElement { AccessLevel = AccessLevel.Deny.ToString(), Identity = SpecialIdentities.Everyone }); collection.Add(new AccessControlElement { AccessLevel = AccessLevel.Read.ToString(), Identity = SpecialIdentities.AuthenticatedUsers }); var cmsConfig = GetCmsConfigurationMock(collection); var service = new DefaultAccessControlService(Container.Resolve <ISecurityService>(), Container.Resolve <ICacheService>(), cmsConfig.Object); var principal = new GenericPrincipal(new GenericIdentity("John Doe"), new string[] { }); var accessLevels = service.GetDefaultAccessList(principal); Assert.AreEqual(3, accessLevels.Count); Assert.AreEqual(accessLevels.First(a => a.Identity == collection[0].Identity).AccessLevel.ToString(), collection[0].AccessLevel); Assert.AreEqual(accessLevels.First(a => a.Identity == collection[1].Identity).AccessLevel.ToString(), collection[1].AccessLevel); Assert.AreEqual(accessLevels.First(a => a.Identity == principal.Identity.Name).AccessLevel, AccessLevel.ReadWrite); }); }
private static Mock <ICmsConfiguration> GetCmsConfigurationMock(AccessControlCollection defaults) { var cmsConfiguration = new Mock <ICmsConfiguration>(); cmsConfiguration.Setup(x => x.DefaultAccessControlList).Returns(() => defaults ?? new AccessControlCollection()); return(cmsConfiguration); }
private Mock <ICmsConfiguration> GetCmsConfigurationMock(AccessControlCollection accessControlCollection) { var cmsSecuritySection = new Mock <ICmsSecurityConfiguration>(); cmsSecuritySection.Setup(x => x.DefaultAccessRules).Returns(() => accessControlCollection ?? new AccessControlCollection()); var cmsConfiguration = new Mock <ICmsConfiguration>(); cmsConfiguration.Setup(x => x.Security).Returns(cmsSecuritySection.Object); return(cmsConfiguration); }
public void Should_Return_Default_List_Without_Principal() { var objectId = Guid.NewGuid(); var accesses = new List <IUserAccess>(); var collection = new AccessControlCollection(); collection.Add(new AccessControlElement { AccessLevel = AccessLevel.Deny.ToString(), RoleOrUser = SpecialIdentities.Everyone }); collection.Add(new AccessControlElement { AccessLevel = AccessLevel.Read.ToString(), RoleOrUser = SpecialIdentities.AuthenticatedUsers }); var service = CreateAccessControlService(objectId, accesses, collection); var accessLevels = service.GetDefaultAccessList(); Assert.AreEqual(2, accessLevels.Count); Assert.AreEqual(accessLevels.First(a => a.RoleOrUser == collection[0].RoleOrUser).AccessLevel.ToString(), collection[0].AccessLevel); Assert.AreEqual(accessLevels.First(a => a.RoleOrUser == collection[1].RoleOrUser).AccessLevel.ToString(), collection[1].AccessLevel); }
public void Should_Return_Default_List_Wit_Principal_Added() { var objectId = Guid.NewGuid(); var accesses = new List <IUserAccess>(); var collection = new AccessControlCollection(); collection.Add(new AccessControlElement { AccessLevel = AccessLevel.Deny.ToString(), RoleOrUser = SpecialIdentities.Everyone }); collection.Add(new AccessControlElement { AccessLevel = AccessLevel.Read.ToString(), RoleOrUser = SpecialIdentities.AuthenticatedUsers }); var service = CreateAccessControlService(objectId, accesses, collection); var principal = new GenericPrincipal(new GenericIdentity("John Doe"), new string[] { }); var accessLevels = service.GetDefaultAccessList(principal); Assert.AreEqual(3, accessLevels.Count); Assert.AreEqual(accessLevels.First(a => a.RoleOrUser == collection[0].RoleOrUser).AccessLevel.ToString(), collection[0].AccessLevel); Assert.AreEqual(accessLevels.First(a => a.RoleOrUser == collection[1].RoleOrUser).AccessLevel.ToString(), collection[1].AccessLevel); Assert.AreEqual(accessLevels.First(a => a.RoleOrUser == principal.Identity.Name).AccessLevel, AccessLevel.ReadWrite); }
private static AccessControlService CreateAccessControlService(Guid objectId, IEnumerable <IUserAccess> accesses, AccessControlCollection defaults = null) { var repository = GetRepositoryMock(objectId, accesses); var cacheService = GetCacheServiceMock(); var cmsConfiguration = GetCmsConfigurationMock(defaults); var service = new AccessControlService(repository.Object, cacheService.Object, cmsConfiguration.Object); return(service); }