public void PermissionsServiceTests_UserGroup_HasPermission_Success() { //Arrange var permissionsService = new PermissionsService(_hive, _permissions, _membershipService); var userGroupIds = _userGroups.Select(x => x.Id).ToArray(); //Assert // Both permissions set to allow, no node inheritance Assert.IsTrue(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Copy), userGroupIds).IsAllowed()); // One permission set to allow, one deny, no node inheritance Assert.IsFalse(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Save), userGroupIds).IsAllowed()); Assert.IsFalse(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Publish), userGroupIds).IsAllowed()); // One permission set to inherit, one set to allow, no node inheritance Assert.IsTrue(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Hostnames), userGroupIds).IsAllowed()); // Both permissions set to inherit, no node inheritance Assert.IsFalse(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Move), userGroupIds).IsAllowed()); // Both permissions set to allow, no node inheritance Assert.IsTrue(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Copy), userGroupIds, _childContentNode.Id).IsAllowed()); // One permission set to allow, one deny, node inheritance Assert.IsFalse(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Save), userGroupIds, _childContentNode.Id).IsAllowed()); Assert.IsTrue(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Publish), userGroupIds, _childContentNode.Id).IsAllowed()); // In this instance, becuase the deny permission is inherited, the allow permission takes precedence // One permission set to inherit, one set to allow, node inheritance Assert.IsTrue(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Hostnames), userGroupIds, _childContentNode.Id).IsAllowed()); // Both permissions set to inherit, node inheritance Assert.IsFalse(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.Move), userGroupIds, _childContentNode.Id).IsAllowed()); }
public void PermissionsServiceTests_Non_Entity_Actions_Dont_Check_Id() { //Arrange var permissionsService = new PermissionsService(_hive, _permissions, _membershipService); //Assert // Child content node has a BackOffice permission defined and set to Deny where system root has one set to Allow // because BackOfficeAccess permission is not an entity action, it should go straight to checking the system root // so should come back as allow. Assert.IsTrue(permissionsService.GetEffectivePermission(new Guid(FixedPermissionIds.BackOfficeAccess), _userId, _childContentNode.Id).IsAllowed()); }