public void ClearSecuritySettings() { AppSettings.LocalHost = string.Format("http://{0}:3142", Environment.MachineName.ToLowerInvariant()); var environmentModel = EnvironmentRepository.Instance.Source; environmentModel.Connect(); while (!environmentModel.IsConnected) { environmentModel.Connect(); Thread.Sleep(100); } var currentSettings = environmentModel.ResourceRepository.ReadSettings(environmentModel); ScenarioContext.Current.Add("initialSettings", currentSettings); Data.Settings.Settings settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(new List <WindowsGroupPermission>()) }; environmentModel.ResourceRepository.WriteSettings(environmentModel, settings); environmentModel.Disconnect(); }
public void GivenItHasWith(string groupName, string groupRights) { var groupPermssions = new WindowsGroupPermission { WindowsGroup = groupName, ResourceID = Guid.Empty, IsServer = true }; var permissionsStrings = groupRights.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); foreach (var permissionsString in permissionsStrings) { SecPermissions permission; if (Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission)) { groupPermssions.Permissions |= permission; } } Data.Settings.Settings settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(new List <WindowsGroupPermission> { groupPermssions }) }; var environmentModel = ScenarioContext.Current.Get <IEnvironmentModel>("environment"); EnsureEnvironmentConnected(environmentModel); environmentModel.ResourceRepository.WriteSettings(environmentModel, settings); environmentModel.Disconnect(); }
static void SetupPermissions() { var groupRights = "View, Execute, Contribute, Deploy To, Deploy From, Administrator"; var groupPermssions = new WindowsGroupPermission { WindowsGroup = "Public", ResourceID = Guid.Empty, IsServer = true }; var permissionsStrings = groupRights.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); foreach (var permissionsString in permissionsStrings) { Permissions permission; if (Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission)) { groupPermssions.Permissions |= permission; } } var settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(new List <WindowsGroupPermission> { groupPermssions }) }; AppUsageStats.LocalHost = "http://localhost:3142"; var environmentModel = ServerRepository.Instance.Source; environmentModel.Connect(); environmentModel.ResourceRepository.WriteSettings(environmentModel, settings); }
public void SettingsWrite_Execute_SettingsWriteValuePassedValidJSON_ShouldDoSecurityWrite() { //------------Setup for test-------------------------- var permission = new WindowsGroupPermission { Administrator = true, IsServer = true, WindowsGroup = Environment.UserName }; var windowsGroupPermissions = new List <WindowsGroupPermission> { permission }; var settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(windowsGroupPermissions) }; var serializeObject = JsonConvert.SerializeObject(settings); var settingsWrite = new SettingsWrite(); //------------Execute Test--------------------------- var execute = settingsWrite.Execute(new Dictionary <string, StringBuilder> { { "Settings", new StringBuilder(serializeObject) } }, null); //------------Assert Results------------------------- var serverSecuritySettingsFile = EnvironmentVariables.ServerSecuritySettingsFile; Assert.IsTrue(File.Exists(serverSecuritySettingsFile)); File.Delete(serverSecuritySettingsFile); var msg = ToMsg(execute); StringAssert.Contains(msg.Message.ToString(), "Success"); }
public ExecuteMessage WriteSettings(IServer currentEnv, Data.Settings.Settings settings) { var comController = new CommunicationController { ServiceName = "SettingsWriteService" }; comController.AddPayloadArgument("Settings", settings.ToString()); return(comController.ExecuteCommand <ExecuteMessage>(currentEnv.Connection, GlobalConstants.ServerWorkspaceID)); }
Data.Settings.Settings ReadSettings() { var payload = CurrentEnvironment.ResourceRepository.ReadSettings(CurrentEnvironment); if (payload == null) { ShowError("Network Error", string.Format(GlobalConstants.NetworkCommunicationErrorTextFormat, "ReadSettings")); } var serializer = new Dev2JsonSerializer(); _backedUpSettings = serializer.Deserialize <Data.Settings.Settings>(payload?.ToString()); return(payload); }
public SettingsViewModel(IEventAggregator eventPublisher, IPopupController popupController, IAsyncWorker asyncWorker, IWin32Window parentWindow, IConnectControlViewModel connectControlViewModel) : base(eventPublisher) { Settings = new Data.Settings.Settings(); VerifyArgument.IsNotNull("popupController", popupController); _popupController = popupController; VerifyArgument.IsNotNull("asyncWorker", asyncWorker); _asyncWorker = asyncWorker; VerifyArgument.IsNotNull("parentWindow", parentWindow); _parentWindow = parentWindow; SaveCommand = new RelayCommand(o => SaveSettings(), o => IsDirty); ServerChangedCommand = new DelegateCommand(OnServerChanged); ConnectControlViewModel = connectControlViewModel ?? new ConnectControlViewModel(OnServerChanged, "Server:", false); }
public SettingsViewModel(IEventAggregator eventPublisher, IPopupController popupController, IAsyncWorker asyncWorker, IWin32Window parentWindow, IConnectControlViewModel connectControlViewModel) : base(eventPublisher) { Settings = new Data.Settings.Settings(); VerifyArgument.IsNotNull("popupController", popupController); _popupController = popupController; VerifyArgument.IsNotNull("asyncWorker", asyncWorker); _asyncWorker = asyncWorker; VerifyArgument.IsNotNull("parentWindow", parentWindow); _parentWindow = parentWindow; SaveCommand = new RelayCommand(o => SaveSettings(), o => IsDirty); ServerChangedCommand = new DelegateCommand(OnServerChanged); ConnectControlViewModel = connectControlViewModel ?? new ConnectControlViewModel(OnServerChanged, "Server:", false); }
public static void InitializeFeature(FeatureContext featureContext) { _featureContext = featureContext; SetupUser(); var securitySpecsUser = GetSecuritySpecsUser(); var securitySpecsPassword = GetSecuritySpecsPassword(); var userGroup = GetUserGroup(); AppUsageStats.LocalHost = $"http://{Environment.MachineName.ToLowerInvariant()}:3142"; var environmentModel = ServerRepository.Instance.Source; environmentModel.Connect(); while (!environmentModel.IsConnected) { environmentModel.Connect(); } var currentSettings = environmentModel.ResourceRepository.ReadSettings(environmentModel); _featureContext.Add("initialSettings", currentSettings); var settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(new List <WindowsGroupPermission>()) }; environmentModel.ResourceRepository.WriteSettings(environmentModel, settings); environmentModel.Disconnect(); _featureContext.Add("environment", environmentModel); var reconnectModel = new Server(Guid.NewGuid(), new ServerProxy(AppUsageStats.LocalHost, securitySpecsUser, securitySpecsPassword)) { Name = "Other Connection" }; try { reconnectModel.Connect(); } catch (UnauthorizedAccessException) { Assert.Fail("Connection unauthorized when connecting to local Warewolf server as user who is part of '" + userGroup + "' user group."); } _featureContext.Add("currentEnvironment", reconnectModel); }
public SettingsViewModel(IEventAggregator eventPublisher, IPopupController popupController, IAsyncWorker asyncWorker, IWin32Window parentWindow, IServer server, Func <IServer, IServer> toEnvironmentModel) : base(eventPublisher) { Server = server; Server.NetworkStateChanged += ServerNetworkStateChanged; Settings = new Data.Settings.Settings(); VerifyArgument.IsNotNull("popupController", popupController); _popupController = popupController; VerifyArgument.IsNotNull("asyncWorker", asyncWorker); _asyncWorker = asyncWorker; VerifyArgument.IsNotNull("parentWindow", parentWindow); _parentWindow = parentWindow; SaveCommand = new RelayCommand(o => SaveSettings(), o => IsDirty); ToEnvironmentModel = toEnvironmentModel ?? (a => a.ToEnvironmentModel()); CurrentEnvironment = ToEnvironmentModel?.Invoke(server); LoadSettings(); // ReSharper disable once VirtualMemberCallInContructor DisplayName = StringResources.SettingsTitle + " - " + Server.DisplayName; }
public void ClearSecuritySettings() { AppSettings.LocalHost = string.Format("http://{0}:3142", Environment.MachineName.ToLowerInvariant()); var environmentModel = EnvironmentRepository.Instance.Source; environmentModel.Connect(); while(!environmentModel.IsConnected) { environmentModel.Connect(); Thread.Sleep(100); } var currentSettings = environmentModel.ResourceRepository.ReadSettings(environmentModel); ScenarioContext.Current.Add("initialSettings",currentSettings); Data.Settings.Settings settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(new List<WindowsGroupPermission>()) }; environmentModel.ResourceRepository.WriteSettings(environmentModel, settings); environmentModel.Disconnect(); }
public SettingsViewModel(IEventAggregator eventPublisher, IPopupController popupController, IAsyncWorker asyncWorker, IWin32Window parentWindow, IServer server, Func <IServer, IServer> toEnvironmentModel) : base(eventPublisher) { Server = server; Server.NetworkStateChanged += ServerNetworkStateChanged; Settings = new Data.Settings.Settings(); VerifyArgument.IsNotNull("popupController", popupController); _popupController = popupController; VerifyArgument.IsNotNull("asyncWorker", asyncWorker); _asyncWorker = asyncWorker; VerifyArgument.IsNotNull("parentWindow", parentWindow); _parentWindow = parentWindow; SaveCommand = new RelayCommand(o => SaveSettings(), o => IsDirty); IShellViewModel vm = CustomContainer.Get <IShellViewModel>(); CreateEnvironmentFromServer(vm.LocalhostServer); ToEnvironmentModel = toEnvironmentModel ?? (a => a.ToEnvironmentModel()); CurrentEnvironment = ToEnvironmentModel(server); LoadSettings(); DisplayName = "Settings - " + Server.DisplayName; }
static Data.Settings.Settings CreateSettings() { var settings = new Data.Settings.Settings { Logging = new LoggingSettingsTo { LogLevel = "DEBUG", LogSize = 20 }, Security = new SecuritySettingsTO(new[] { new WindowsGroupPermission { IsServer = true, WindowsGroup = GlobalConstants.WarewolfGroup, View = false, Execute = false, Contribute = true, DeployTo = true, DeployFrom = true, Administrator = true }, new WindowsGroupPermission { IsServer = true, WindowsGroup = "Deploy Admins", View = false, Execute = false, Contribute = false, DeployTo = true, DeployFrom = true, Administrator = false }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category1\\Workflow1", WindowsGroup = "Windows Group 1", View = false, Execute = true, Contribute = false }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category1\\Workflow1", WindowsGroup = "Windows Group 2", View = false, Execute = false, Contribute = true }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category1\\Workflow2", WindowsGroup = "Windows Group 1", View = true, Execute = true, Contribute = false }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category2\\Workflow3", WindowsGroup = "Windows Group 3", View = true, Execute = false, Contribute = false }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category2\\Workflow3", WindowsGroup = "Windows Group 4", View = false, Execute = true, Contribute = false }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category2\\Workflow4", WindowsGroup = "Windows Group 3", View = false, Execute = false, Contribute = true }, new WindowsGroupPermission { ResourceID = Guid.NewGuid(), ResourceName = "Category1\\Workflow1", WindowsGroup = "Windows Group 4", View = false, Execute = false, Contribute = true } }) { CacheTimeout = GlobalConstants.DefaultTimeoutValue } }; return settings; }
public void SettingsViewModel_ServerChangedCommand_ServerEnvironmentIsConnectedAndSettingsHasErrors_ShowsLoadError() { //------------Setup for test-------------------------- var popupController = new Mock<IPopupController>(); popupController.Setup(p => p.Show()).Verifiable(); popupController.SetupAllProperties(); var settings = new Data.Settings.Settings { HasError = true, Error = "Error occurred loading", Security = new SecuritySettingsTO() }; //------------Execute Test--------------------------- var viewModel = CreateSettingsViewModel(popupController.Object, settings.ToString()); //------------Assert Results------------------------- Assert.AreEqual(1, viewModel.ShowErrorHitCount); Assert.IsNotNull(viewModel.CurrentEnvironment); Assert.IsNotNull(viewModel.SecurityViewModel); Assert.IsFalse(viewModel.IsLoading); Assert.IsFalse(viewModel.IsDirty); Assert.IsTrue(viewModel.HasErrors); Assert.AreEqual(settings.Error, viewModel.Errors); }
public void GivenItHasWith(string groupName, string groupRights) { var groupPermssions = new WindowsGroupPermission { WindowsGroup = groupName, ResourceID = Guid.Empty, IsServer = true }; var permissionsStrings = groupRights.Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); foreach(var permissionsString in permissionsStrings) { SecPermissions permission; if(Enum.TryParse(permissionsString.Replace(" ", ""), true, out permission)) { groupPermssions.Permissions |= permission; } } Data.Settings.Settings settings = new Data.Settings.Settings { Security = new SecuritySettingsTO(new List<WindowsGroupPermission> { groupPermssions }) }; var environmentModel = ScenarioContext.Current.Get<IEnvironmentModel>("environment"); EnsureEnvironmentConnected(environmentModel); environmentModel.ResourceRepository.WriteSettings(environmentModel, settings); environmentModel.Disconnect(); }