public void InitialData_Core_Permissions_Apply() { var initialData = new InitialData { Permissions = new List <string> { "+6|Normal|-6:_______________________________________________________________+", "-1000|Normal|+6:_______________________________________________________________+", } }; InitialSecurityDataTest(() => { var securityHandler = Providers.Instance.SecurityHandler; var mask = PermissionType.GetPermissionMask(PermissionType.BuiltInPermissionTypes); Providers.Instance.SecurityHandler.CreateAclEditor() .RemoveExplicitEntries(2) .RemoveExplicitEntries(6) .RemoveExplicitEntries(1000) .Set(2, 7, false, mask, 0UL) .Apply(); // PRECHECKS // Administrators group has 1 entry on the Root. Assert.AreEqual(1, Providers.Instance.SecurityHandler.GetExplicitEntries(2, new[] { 7 }).Count); // Visitor has no any permission. Assert.IsFalse(securityHandler.HasPermission(User.Visitor, 6, PermissionType.See)); Assert.IsFalse(securityHandler.HasPermission(User.Visitor, 1000, PermissionType.See)); // There is no break. Assert.IsTrue(securityHandler.IsEntityInherited(6)); Assert.IsTrue(securityHandler.IsEntityInherited(1000)); // ACTION new SecurityInstaller(Providers.Instance.SecurityHandler, Providers.Instance.StorageSchema, Providers.Instance.DataStore).InstallDefaultSecurityStructure(initialData); // ASSERT // Administrators group has an entry on the Root. Assert.AreEqual(1, Providers.Instance.SecurityHandler.GetExplicitEntries(2, new[] { 7 }).Count); // Visitor has See permission on both contents. Assert.IsTrue(securityHandler.HasPermission(User.Visitor, 6, PermissionType.See)); Assert.IsTrue(securityHandler.HasPermission(User.Visitor, 1000, PermissionType.See)); // The second content is not inherited. Assert.IsTrue(securityHandler.IsEntityInherited(6)); Assert.IsFalse(securityHandler.IsEntityInherited(1000)); }); }