From c9c0cac57e1716780cc386d297d22d7b51eb5b8c Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Tue, 24 Jun 2025 15:39:55 -0700 Subject: [PATCH] Google renamed an error: cannotModifyInheritedTeamDrivePermission became cannotModifyInheritedPermission --- src/GamUpdate.txt | 5 +++++ src/gam/__init__.py | 20 +++++++++++++------- src/gam/gamlib/glgapi.py | 8 ++++++-- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 3cc381d7..b347bd2f 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,8 @@ +7.10.05 + +Google renamed an error: cannotModifyInheritedTeamDrivePermission became cannotModifyInheritedPermission. +GAM will now handle the new error. + 7.10.04 Updated `gam report ` to accept accept application names as defined diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 35a918c4..62044de7 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki """ __author__ = 'GAM Team ' -__version__ = '7.10.04' +__version__ = '7.10.05' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -59527,7 +59527,8 @@ def _copyPermissions(drive, user, i, count, j, jcount, entityActionPerformed(kvList, k, kcount) except (GAPI.notFound, GAPI.permissionNotFound, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError, - GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission, + GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, + GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.cannotDeletePermission) as e: entityActionFailedWarning(kvList, str(e), k, kcount) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e: @@ -59554,7 +59555,8 @@ def _copyPermissions(drive, user, i, count, j, jcount, entityActionPerformed(kvList, k, kcount) except (GAPI.notFound, GAPI.permissionNotFound, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError, - GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission, + GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, + GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded) as e: entityActionFailedWarning(kvList, str(e), k, kcount) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e: @@ -60561,7 +60563,8 @@ def _updateMoveFilePermissions(drive, user, i, count, entityActionPerformed(kvList, k, kcount) except (GAPI.notFound, GAPI.permissionNotFound, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError, - GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission, + GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, + GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.cannotDeletePermission) as e: entityActionFailedWarning(kvList, str(e), k, kcount) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e: @@ -63984,7 +63987,8 @@ def updateDriveFileACLs(users, useDomainAdminAccess=False): GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser, GAPI.organizerOnNonTeamDriveItemNotSupported, GAPI.fileOrganizerOnNonTeamDriveNotSupported, - GAPI.cannotUpdatePermission, GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.fieldNotWritable) as e: + GAPI.cannotUpdatePermission, GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission, + GAPI.fieldNotWritable) as e: entityActionFailedWarning([Ent.USER, user, entityType, fileName], str(e), j, jcount) except (GAPI.notFound, GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction, GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.ownerOnTeamDriveItemNotSupported, @@ -64257,7 +64261,8 @@ def deleteDriveFileACLs(users, useDomainAdminAccess=False): if updateSheetProtectedRanges and mimeType == MIMETYPE_GA_SPREADSHEET: _updateSheetProtectedRangesACLchange(sheet, user, i, count, j, jcount, fileId, fileName, False, permission) except (GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError, - GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission, + GAPI.fileNeverWritable, GAPI.badRequest, GAPI.cannotRemoveOwner, + GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.cannotDeletePermission) as e: entityActionFailedWarning([Ent.USER, user, entityType, fileName], str(e), j, jcount) except GAPI.notFound as e: @@ -64313,7 +64318,8 @@ def deletePermissions(users, useDomainAdminAccess=False): fileId=ri[RI_ENTITY], permissionId=ri[RI_ITEM], supportsAllDrives=True) entityActionPerformed([Ent.DRIVE_FILE_OR_FOLDER_ID, ri[RI_ENTITY], Ent.PERMISSION_ID, ri[RI_ITEM]], int(ri[RI_J]), int(ri[RI_JCOUNT])) except (GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError, - GAPI.badRequest, GAPI.cannotRemoveOwner, GAPI.cannotModifyInheritedTeamDrivePermission, + GAPI.badRequest, GAPI.cannotRemoveOwner, + GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.cannotModifyInheritedPermission, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded, GAPI.permissionNotFound, GAPI.cannotDeletePermission, GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e: entityActionFailedWarning([Ent.DRIVE_FILE_OR_FOLDER_ID, ri[RI_ENTITY], Ent.PERMISSION_ID, ri[RI_ITEM]], str(e), int(ri[RI_J]), int(ri[RI_JCOUNT])) diff --git a/src/gam/gamlib/glgapi.py b/src/gam/gamlib/glgapi.py index 28dfd3b1..0caf15da 100644 --- a/src/gam/gamlib/glgapi.py +++ b/src/gam/gamlib/glgapi.py @@ -41,6 +41,7 @@ CANNOT_DELETE_PERMISSION = 'cannotDeletePermission' CANNOT_DELETE_PRIMARY_CALENDAR = 'cannotDeletePrimaryCalendar' CANNOT_DELETE_PRIMARY_SENDAS = 'cannotDeletePrimarySendAs' CANNOT_DELETE_RESOURCE_WITH_CHILDREN = 'cannotDeleteResourceWithChildren' +CANNOT_MODIFY_INHERITED_PERMISSION = 'cannotModifyInheritedPermission' CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION = 'cannotModifyInheritedTeamDrivePermission' CANNOT_MODIFY_RESTRICTED_LABEL = 'cannotModifyRestrictedLabel' CANNOT_MODIFY_VIEWERS_CAN_COPY_CONTENT = 'cannotModifyViewersCanCopyContent' @@ -248,10 +249,10 @@ DRIVE3_UPDATE_ACL_THROW_REASONS = [BAD_REQUEST, INVALID_OWNERSHIP_TRANSFER, CANN FILE_ORGANIZER_ON_FOLDERS_IN_SHARED_DRIVE_ONLY, FILE_ORGANIZER_ON_NON_TEAMDRIVE_NOT_SUPPORTED, CANNOT_UPDATE_PERMISSION, - CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION, + CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION, CANNOT_MODIFY_INHERITED_PERMISSION, FIELD_NOT_WRITABLE, PERMISSION_NOT_FOUND] DRIVE3_DELETE_ACL_THROW_REASONS = [BAD_REQUEST, CANNOT_REMOVE_OWNER, - CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION, + CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION, CANNOT_MODIFY_INHERITED_PERMISSION, INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED, NOT_FOUND, PERMISSION_NOT_FOUND, CANNOT_DELETE_PERMISSION] DRIVE3_MODIFY_LABEL_THROW_REASONS = DRIVE_USER_THROW_REASONS+[FILE_NOT_FOUND, NOT_FOUND, FORBIDDEN, INTERNAL_ERROR, @@ -398,6 +399,8 @@ class cannotDeletePrimarySendAs(Exception): pass class cannotDeleteResourceWithChildren(Exception): pass +class cannotModifyInheritedPermission(Exception): + pass class cannotModifyInheritedTeamDrivePermission(Exception): pass class cannotModifyRestrictedLabel(Exception): @@ -698,6 +701,7 @@ REASON_EXCEPTION_MAP = { CANNOT_DELETE_PRIMARY_CALENDAR: cannotDeletePrimaryCalendar, CANNOT_DELETE_PRIMARY_SENDAS: cannotDeletePrimarySendAs, CANNOT_DELETE_RESOURCE_WITH_CHILDREN: cannotDeleteResourceWithChildren, + CANNOT_MODIFY_INHERITED_PERMISSION: cannotModifyInheritedPermission, CANNOT_MODIFY_INHERITED_TEAMDRIVE_PERMISSION: cannotModifyInheritedTeamDrivePermission, CANNOT_MODIFY_RESTRICTED_LABEL: cannotModifyRestrictedLabel, CANNOT_MODIFY_VIEWERS_CAN_COPY_CONTENT: cannotModifyViewersCanCopyContent,