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)