Пример #1
0
        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);
        }
Пример #3
0
        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);
        }