static SecuritySettingsTO ProcessSettingsFile(IResourceNameProvider resourceNameProvider, string encryptedData) { var decryptData = SecurityEncryption.Decrypt(encryptedData); Dev2Logger.Debug(decryptData, GlobalConstants.WarewolfDebug); var currentSecuritySettingsTo = JsonConvert.DeserializeObject <SecuritySettingsTO>(decryptData); if (currentSecuritySettingsTo.WindowsGroupPermissions.Any(a => a.ResourceID != Guid.Empty)) { foreach (var perm in currentSecuritySettingsTo.WindowsGroupPermissions.Where(a => a.ResourceID != Guid.Empty)) { var resourceName = resourceNameProvider.GetResourceNameById(perm.ResourceID); if (string.IsNullOrWhiteSpace(resourceName)) { resourceName = perm.ResourcePath ?? string.Empty; } perm.ResourceName = resourceName; } } if (currentSecuritySettingsTo.AuthenticationOverrideWorkflow.Name.Length > 0 && currentSecuritySettingsTo.SecretKey == "") { var hmac = new HMACSHA256(); currentSecuritySettingsTo.SecretKey = Convert.ToBase64String(hmac.Key); } var permissionGroup = currentSecuritySettingsTo.WindowsGroupPermissions; if (permissionGroup.Count > 0) { var adminGrp = permissionGroup[0].WindowsGroup; if (adminGrp == "BuiltIn\\Administrators") { permissionGroup[0].WindowsGroup = WindowsGroupPermission.BuiltInAdministratorsText; } } var hasGuestPermission = permissionGroup.Any(permission => permission.IsBuiltInGuests); var hasAdminPermission = permissionGroup.Any(permission => permission.IsBuiltInAdministrators); if (!hasAdminPermission) { permissionGroup.Add(WindowsGroupPermission.CreateAdministrators()); permissionGroup.Sort(QuickSortForPermissions); } if (!hasGuestPermission) { permissionGroup.Add(WindowsGroupPermission.CreateGuests()); permissionGroup.Sort(QuickSortForPermissions); } return(currentSecuritySettingsTo); }