diff --git a/proprietary/GoogleWorkspace/SourceItems/MetaRootSourceEntry.cs b/proprietary/GoogleWorkspace/SourceItems/MetaRootSourceEntry.cs index 049f35409..6a3267ae9 100644 --- a/proprietary/GoogleWorkspace/SourceItems/MetaRootSourceEntry.cs +++ b/proprietary/GoogleWorkspace/SourceItems/MetaRootSourceEntry.cs @@ -123,10 +123,6 @@ internal class MetaRootSourceEntry(SourceProvider provider, string parentPath, s } else if (type == SourceItemType.MetaRootOrganizationalUnits) { - // OrganizationalUnits is a single file containing all OUs, so we check license once - if (!provider.LicenseApprovedForEntry(Path, GoogleRootType.OrganizationalUnits, "organizational_units")) - yield break; - yield return new OrganizationalUnitsSourceEntry(provider, this.Path); } } diff --git a/proprietary/GoogleWorkspace/SourceProvider/SourceProvider.cs b/proprietary/GoogleWorkspace/SourceProvider/SourceProvider.cs index 7f8409b71..17890eccf 100644 --- a/proprietary/GoogleWorkspace/SourceProvider/SourceProvider.cs +++ b/proprietary/GoogleWorkspace/SourceProvider/SourceProvider.cs @@ -40,10 +40,6 @@ public sealed class SourceProvider : ISourceProviderModule, IDisposable /// The current number of sites that has been enumerated. /// private int _siteCount = 0; - /// - /// The current number of organizational units that has been enumerated. - /// - private int _organizationalUnitCount = 0; /// /// Whether a license warning has been issued for users. @@ -61,10 +57,6 @@ public sealed class SourceProvider : ISourceProviderModule, IDisposable /// Whether a license warning has been issued for sites. /// private int _siteLicenseWarningIssued = 0; - /// - /// Whether a license warning has been issued for organizational units. - /// - private int _organizationalUnitLicenseWarningIssued = 0; /// /// Whether this provider is being used for a restore operation. @@ -264,17 +256,6 @@ public sealed class SourceProvider : ISourceProviderModule, IDisposable return false; } } - else if (type == GoogleRootType.OrganizationalUnits) - { - var approved = LicenseChecker.LicenseHelper.AvailableGoogleWorkspaceOrganizationalUnitSeats; - var current = _organizationalUnitCount; - if (current >= approved) - { - if (Interlocked.Exchange(ref _organizationalUnitLicenseWarningIssued, 1) == 0) - Log.WriteWarningMessage(LOGTAG, "LicenseWarning", null, $"Licensed Google Workspace feature seats exceeded for {type} ({approved}). Some items will not be backed up."); - return false; - } - } else { // Unknown type, allow it @@ -291,8 +272,6 @@ public sealed class SourceProvider : ISourceProviderModule, IDisposable Interlocked.Increment(ref _sharedDriveCount); else if (type == GoogleRootType.Sites) Interlocked.Increment(ref _siteCount); - else if (type == GoogleRootType.OrganizationalUnits) - Interlocked.Increment(ref _organizationalUnitCount); } return true; diff --git a/proprietary/LicenseChecker/DuplicatiLicenseFeatures.cs b/proprietary/LicenseChecker/DuplicatiLicenseFeatures.cs index 9ee3107eb..b300c9b05 100644 --- a/proprietary/LicenseChecker/DuplicatiLicenseFeatures.cs +++ b/proprietary/LicenseChecker/DuplicatiLicenseFeatures.cs @@ -42,9 +42,4 @@ public static class DuplicatiLicenseFeatures /// The feature indicating support for Google Workspace site backups /// public const string GoogleWorkspaceSites = "duplicati:googleworkspace:sites"; - - /// - /// The feature indicating support for Google Workspace organizational unit backups - /// - public const string GoogleWorkspaceOrganizationalUnits = "duplicati:googleworkspace:organizationalunits"; } diff --git a/proprietary/LicenseChecker/LicenseHelper.cs b/proprietary/LicenseChecker/LicenseHelper.cs index 0d9aee8d2..05e9f381a 100644 --- a/proprietary/LicenseChecker/LicenseHelper.cs +++ b/proprietary/LicenseChecker/LicenseHelper.cs @@ -17,7 +17,6 @@ public static class LicenseHelper public static int AvailableGoogleWorkspaceGroupSeats => GetFeatureSeats(DuplicatiLicenseFeatures.GoogleWorkspaceGroups); public static int AvailableGoogleWorkspaceSharedDriveSeats => GetFeatureSeats(DuplicatiLicenseFeatures.GoogleWorkspaceSharedDrives); public static int AvailableGoogleWorkspaceSiteSeats => GetFeatureSeats(DuplicatiLicenseFeatures.GoogleWorkspaceSites); - public static int AvailableGoogleWorkspaceOrganizationalUnitSeats => GetFeatureSeats(DuplicatiLicenseFeatures.GoogleWorkspaceOrganizationalUnits); public static bool IsOffice365Enabled => AvailableOffice365UserSeats > 0 || @@ -28,8 +27,7 @@ public static class LicenseHelper AvailableGoogleWorkspaceUserSeats > 0 || AvailableGoogleWorkspaceGroupSeats > 0 || AvailableGoogleWorkspaceSharedDriveSeats > 0 || - AvailableGoogleWorkspaceSiteSeats > 0 || - AvailableGoogleWorkspaceOrganizationalUnitSeats > 0; + AvailableGoogleWorkspaceSiteSeats > 0; private static Dictionary UnlicensedSeats = new Dictionary { @@ -39,8 +37,7 @@ public static class LicenseHelper { DuplicatiLicenseFeatures.GoogleWorkspaceUsers, 5 }, { DuplicatiLicenseFeatures.GoogleWorkspaceGroups, 5 }, { DuplicatiLicenseFeatures.GoogleWorkspaceSharedDrives, 5 }, - { DuplicatiLicenseFeatures.GoogleWorkspaceSites, 5 }, - { DuplicatiLicenseFeatures.GoogleWorkspaceOrganizationalUnits, 5 }, + { DuplicatiLicenseFeatures.GoogleWorkspaceSites, 5 } }; private static int GetDefaultSeats(string feature)