public void ThenShouldHave(string resourceName, string resourcePerms)
        {
            var environmentModel = ScenarioContext.Current.Get <IEnvironmentModel>("currentEnvironment");

            EnsureEnvironmentConnected(environmentModel);
            var resourceRepository = environmentModel.ResourceRepository;

            environmentModel.ForceLoadResources();

            var resourceModel = resourceRepository.FindSingle(model => model.Category.Equals(resourceName, StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(resourceModel);
            SecPermissions resourcePermissions = SecPermissions.None;
            var            permissionsStrings  = resourcePerms.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var permissionsString in permissionsStrings)
            {
                SecPermissions permission;
                if (Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission))
                {
                    resourcePermissions |= permission;
                }
            }
            resourceModel.UserPermissions = environmentModel.AuthorizationService.GetResourcePermissions(resourceModel.ID);
            Assert.AreEqual(resourcePermissions, resourceModel.UserPermissions);
        }
        public void GivenResourceHasRights(string resourceName, string resourceRights, string groupName)
        {
            var environmentModel = ScenarioContext.Current.Get <IEnvironmentModel>("environment");

            EnsureEnvironmentConnected(environmentModel);
            var resourceRepository = environmentModel.ResourceRepository;
            var settings           = resourceRepository.ReadSettings(environmentModel);

            environmentModel.ForceLoadResources();

            var resourceModel = resourceRepository.FindSingle(model => model.Category.Equals(resourceName, StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(resourceModel, "Did not find: " + resourceName);
            SecPermissions resourcePermissions = SecPermissions.None;
            var            permissionsStrings  = resourceRights.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var permissionsString in permissionsStrings)
            {
                SecPermissions permission;
                if (Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission))
                {
                    resourcePermissions |= permission;
                }
            }
            settings.Security.WindowsGroupPermissions.RemoveAll(permission => permission.ResourceID == resourceModel.ID);
            var windowsGroupPermission = new WindowsGroupPermission {
                WindowsGroup = groupName, ResourceID = resourceModel.ID, ResourceName = resourceName, IsServer = false, Permissions = resourcePermissions
            };

            settings.Security.WindowsGroupPermissions.Add(windowsGroupPermission);
            resourceRepository.WriteSettings(environmentModel, settings);
        }
        public void ThenResourcesShouldNotHave(string resourcePerms)
        {
            var            environmentModel    = LoadResources();
            SecPermissions resourcePermissions = SecPermissions.None;
            var            permissionsStrings  = resourcePerms.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var permissionsString in permissionsStrings)
            {
                SecPermissions permission;
                if (Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission))
                {
                    resourcePermissions |= permission;
                }
            }
            var resourceModels         = environmentModel.ResourceRepository.All();
            var allMatch               = resourceModels.Count(model => model.UserPermissions == resourcePermissions);
            var totalNumberOfResources = resourceModels.Count;

            Assert.IsTrue(totalNumberOfResources - allMatch <= 1);
        }
Ejemplo n.º 4
0
        public void ThenResourcesShouldNotHave(string resourcePerms)
        {
            var            environmentModel    = LoadResources();
            SecPermissions resourcePermissions = SecPermissions.None;
            var            permissionsStrings  = resourcePerms.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var permissionsString in permissionsStrings)
            {
                SecPermissions permission;
                if (Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission))
                {
                    resourcePermissions |= permission;
                }
            }
            var resourceModels                     = environmentModel.ResourceRepository.All();
            var allMatch                           = resourceModels.Count(model => model.UserPermissions == resourcePermissions);
            var totalNumberOfResources             = resourceModels.Count;
            var totalNumberOfResourcesWithoutMatch = totalNumberOfResources - allMatch;

            Assert.IsTrue(totalNumberOfResourcesWithoutMatch <= 1, "Total number of resources with " + resourcePermissions + " permission is " + allMatch + ". There are " + totalNumberOfResources + " resources in total. Therefore " + totalNumberOfResourcesWithoutMatch + " total resources do not have that permission.");
        }