mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-28 18:01:36 +00:00
Merge branch 'main' into gcloud_reauth
This commit is contained in:
@@ -8424,7 +8424,7 @@ class CSVPrintFile():
|
||||
except (GAPI.badRequest, GAPI.invalid, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
|
||||
GAPI.insufficientFilePermissions, GAPI.insufficientParentPermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
|
||||
GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
|
||||
GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
|
||||
GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.cannotShareTeamDriveWithNonGoogleAccounts,
|
||||
GAPI.ownerOnTeamDriveItemNotSupported,
|
||||
@@ -24786,10 +24786,10 @@ def doInfoChatMember():
|
||||
infoChatMember([None])
|
||||
|
||||
# gam [<UserTypeEntity>] show chatmembers <ChatSpace>
|
||||
# [showinvited [<Boolean>]] [filter <String>]
|
||||
# [showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
# [formatjson]
|
||||
# gam [<UserTypeEntity>] print chatmembers [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
# [showinvited [<Boolean>]] [filter <String>]
|
||||
# [showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
# [formatjson [quotechar <Character>]]
|
||||
def printShowChatMembers(users):
|
||||
def _printChatMember(user, member):
|
||||
@@ -24808,8 +24808,8 @@ def printShowChatMembers(users):
|
||||
cd = buildGAPIObject(API.DIRECTORY)
|
||||
csvPF = CSVPrintFile(['User', 'name'] if not isinstance(users, list) else ['name']) if Act.csvFormat() else None
|
||||
FJQC = FormatJSONQuoteChar(csvPF)
|
||||
parent = pfilter = None
|
||||
showInvited = False
|
||||
kwargs = {}
|
||||
parent = None
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
if csvPF and myarg == 'todrive':
|
||||
@@ -24817,16 +24817,18 @@ def printShowChatMembers(users):
|
||||
elif myarg == 'space' or myarg.startswith('spaces/'):
|
||||
parent = getChatSpace(myarg)
|
||||
elif myarg == 'showinvited':
|
||||
showInvited = getBoolean()
|
||||
kwargs['showInvited'] = getBoolean()
|
||||
elif myarg == 'showgroups':
|
||||
kwargs['showGroups'] = getBoolean()
|
||||
elif myarg =='filter':
|
||||
pfilter = getString(Cmd.OB_STRING)
|
||||
kwargs['filter'] = getString(Cmd.OB_STRING)
|
||||
else:
|
||||
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
||||
if not parent:
|
||||
missingArgumentExit('space')
|
||||
qfilter = f'{Ent.Singular(Ent.CHAT_SPACE)}: {parent}'
|
||||
if pfilter:
|
||||
qfilter += f', {pfilter}'
|
||||
if 'filter' in kwargs:
|
||||
qfilter += f', {kwargs["filter"]}'
|
||||
i, count, users = getEntityArgument(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
@@ -24837,7 +24839,7 @@ def printShowChatMembers(users):
|
||||
members = callGAPIpages(chat.spaces().members(), 'list', 'memberships',
|
||||
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, i, count, qfilter),
|
||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
||||
pageSize=CHAT_PAGE_SIZE, parent=parent, filter=pfilter, showInvited=showInvited)
|
||||
pageSize=CHAT_PAGE_SIZE, parent=parent, **kwargs)
|
||||
for member in members:
|
||||
_getChatMemberEmail(cd, member)
|
||||
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
||||
@@ -36838,10 +36840,13 @@ def warnMatterNotOpen(v, matter, matterNameId, j, jcount):
|
||||
matterId=matter['matterId'], view='BASIC', fields='state')['state']
|
||||
except (GAPI.notFound, GAPI.forbidden):
|
||||
matter['state'] = 'Unknown'
|
||||
printWarningMessage(DATA_NOT_AVALIABLE_RC, formatKeyValueList('',
|
||||
Ent.FormatEntityValueList([Ent.VAULT_MATTER, matterNameId])+
|
||||
[Msg.MATTER_NOT_OPEN.format(matter['state'])],
|
||||
currentCount(j, jcount)))
|
||||
else:
|
||||
setSysExitRC(DATA_NOT_AVALIABLE_RC)
|
||||
message = formatKeyValueList('',
|
||||
Ent.FormatEntityValueList([Ent.VAULT_MATTER, matterNameId])+
|
||||
[Msg.MATTER_NOT_OPEN.format(matter['state'])],
|
||||
currentCount(j, jcount))
|
||||
writeStderr(f'\n{Ind.Spaces()}{WARNING_PREFIX}{message}\n')
|
||||
|
||||
def _cleanVaultExport(export, cd):
|
||||
query = export.get('query')
|
||||
@@ -48704,13 +48709,14 @@ DRIVEFILE_PROPERTY_VISIBILITY_CHOICE_MAP = {
|
||||
|
||||
DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP = {
|
||||
'readonly': 'readOnly',
|
||||
'ownerrestricted': 'ownerRestricted',
|
||||
}
|
||||
|
||||
def getDriveFileProperty(visibility=None):
|
||||
key = getString(Cmd.OB_PROPERTY_KEY)
|
||||
value = getString(Cmd.OB_PROPERTY_VALUE, minLen=0) or None
|
||||
if visibility is None:
|
||||
if Cmd.PeekArgumentPresent(DRIVEFILE_PROPERTY_VISIBILITY_CHOICE_MAP):
|
||||
if Cmd.PeekArgumentPresent(list(DRIVEFILE_PROPERTY_VISIBILITY_CHOICE_MAP.keys())):
|
||||
visibility = getChoice(DRIVEFILE_PROPERTY_VISIBILITY_CHOICE_MAP, mapChoice=True)
|
||||
else:
|
||||
visibility = 'properties'
|
||||
@@ -48781,16 +48787,17 @@ def getDriveFileCopyAttribute(myarg, body, parameters):
|
||||
elif myarg == 'writerscantshare':
|
||||
body['writersCanShare'] = not getBoolean()
|
||||
elif myarg == 'contentrestrictions':
|
||||
body['contentRestrictions'] = [{}]
|
||||
restriction = getChoice(DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP, mapChoice=True)
|
||||
if restriction == 'readOnly':
|
||||
while Cmd.PeekArgumentPresent(list(DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP.keys())):
|
||||
body.setdefault('contentRestrictions', [{}])
|
||||
restriction = getChoice(DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP, mapChoice=True)
|
||||
body['contentRestrictions'][0][restriction] = getBoolean()
|
||||
if checkArgumentPresent(['reason']):
|
||||
if body['contentRestrictions'][0][restriction]:
|
||||
body['contentRestrictions'][0]['reason'] = getString(Cmd.OB_STRING, minLen=0)
|
||||
else:
|
||||
Cmd.Backup()
|
||||
usageErrorExit(Msg.REASON_ONLY_VALID_WITH_CONTENTRESTRICTIONS_READONLY_TRUE)
|
||||
if restriction == 'readOnly':
|
||||
if checkArgumentPresent(['reason']):
|
||||
if body['contentRestrictions'][0][restriction]:
|
||||
body['contentRestrictions'][0]['reason'] = getString(Cmd.OB_STRING, minLen=0)
|
||||
else:
|
||||
Cmd.Backup()
|
||||
usageErrorExit(Msg.REASON_ONLY_VALID_WITH_CONTENTRESTRICTIONS_READONLY_TRUE)
|
||||
elif myarg == 'property':
|
||||
driveprop = getDriveFileProperty()
|
||||
body.setdefault(driveprop['visibility'], {})
|
||||
@@ -49682,6 +49689,7 @@ DRIVE_CAPABILITIES_SUBFIELDS_CHOICE_MAP = {
|
||||
}
|
||||
|
||||
DRIVE_CONTENT_RESTRICTIONS_SUBFIELDS_CHOICE_MAP = {
|
||||
'ownerrestricted': 'ownerRestricted',
|
||||
'readonly': 'readOnly',
|
||||
'reason': 'reason',
|
||||
'restrictinguser': 'restructingUser',
|
||||
@@ -53953,7 +53961,7 @@ def _copyPermissions(drive, user, i, count, j, jcount,
|
||||
except (GAPI.badRequest, GAPI.invalid, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
|
||||
GAPI.insufficientFilePermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
|
||||
GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
|
||||
GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
|
||||
GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.cannotShareTeamDriveWithNonGoogleAccounts,
|
||||
GAPI.ownerOnTeamDriveItemNotSupported,
|
||||
@@ -55006,7 +55014,7 @@ def _updateMoveFilePermissions(drive, user, i, count,
|
||||
except (GAPI.badRequest, GAPI.invalid, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
|
||||
GAPI.insufficientFilePermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
|
||||
GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
|
||||
GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
|
||||
GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.cannotShareTeamDriveWithNonGoogleAccounts,
|
||||
GAPI.ownerOnTeamDriveItemNotSupported,
|
||||
@@ -57990,7 +57998,7 @@ def createDriveFileACL(users, useDomainAdminAccess=False):
|
||||
GAPI.cannotSetExpiration,
|
||||
GAPI.insufficientFilePermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
|
||||
GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
|
||||
GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
|
||||
GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.cannotShareTeamDriveWithNonGoogleAccounts,
|
||||
GAPI.ownerOnTeamDriveItemNotSupported,
|
||||
@@ -58119,7 +58127,7 @@ def updateDriveFileACLs(users, useDomainAdminAccess=False):
|
||||
GAPI.cannotSetExpiration,
|
||||
GAPI.badRequest, GAPI.invalidOwnershipTransfer, GAPI.cannotRemoveOwner,
|
||||
GAPI.fileNeverWritable, GAPI.ownershipChangeAcrossDomainNotPermitted, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.insufficientAdministratorPrivileges,
|
||||
GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges,
|
||||
GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
|
||||
GAPI.organizerOnNonTeamDriveItemNotSupported, GAPI.fileOrganizerOnNonTeamDriveNotSupported,
|
||||
GAPI.cannotUpdatePermission, GAPI.cannotModifyInheritedTeamDrivePermission, GAPI.fieldNotWritable) as e:
|
||||
@@ -58218,7 +58226,7 @@ def createDriveFilePermissions(users, useDomainAdminAccess=False):
|
||||
except (GAPI.badRequest, GAPI.invalid, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
|
||||
GAPI.insufficientFilePermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
|
||||
GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
|
||||
GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
|
||||
GAPI.publishOutNotPermitted, GAPI.shareInNotPermitted, GAPI.shareOutNotPermitted, GAPI.shareOutNotPermittedToUser,
|
||||
GAPI.cannotShareTeamDriveTopFolderWithAnyoneOrDomains, GAPI.cannotShareTeamDriveWithNonGoogleAccounts,
|
||||
GAPI.ownerOnTeamDriveItemNotSupported,
|
||||
@@ -59230,7 +59238,7 @@ def _getSharedDriveRestrictions(myarg, body):
|
||||
return True
|
||||
return False
|
||||
|
||||
def _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci=None):
|
||||
def _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci, returnIdOnly):
|
||||
action = Act.Get()
|
||||
name = f'orgUnits/-/memberships/shared_drive;{driveId}'
|
||||
if ci is None:
|
||||
@@ -59240,8 +59248,9 @@ def _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci=None):
|
||||
try:
|
||||
callGAPI(ci.orgUnits().memberships(), 'move',
|
||||
name=name, body=cibody)
|
||||
Act.Set(Act.MOVE)
|
||||
entityModifierNewValueActionPerformed([Ent.SHAREDDRIVE, driveId], Act.MODIFIER_TO, f'{Ent.Singular(Ent.ORGANIZATIONAL_UNIT)}: {orgUnit}', i, count)
|
||||
if not returnIdOnly:
|
||||
Act.Set(Act.MOVE)
|
||||
entityModifierNewValueActionPerformed([Ent.SHAREDDRIVE, driveId], Act.MODIFIER_TO, f'{Ent.Singular(Ent.ORGANIZATIONAL_UNIT)}: {orgUnit}', i, count)
|
||||
except (GAPI.notFound, GAPI.forbidden, GAPI.badRequest, GAPI.internalError,
|
||||
GAPI.noManageTeamDriveAdministratorPrivilege) as e:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], str(e), i, count)
|
||||
@@ -59254,10 +59263,11 @@ def _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci=None):
|
||||
# [(theme|themeid <String>) | ([customtheme <DriveFileID> <Float> <Float> <Float>] [color <ColorValue>])]
|
||||
# (<SharedDriveRestrictionsFieldName> <Boolean>)*
|
||||
# [hide|hidden <Boolean>] [ou|org|orgunit <OrgUnitItem>]
|
||||
# [errorretries <Integer>] [updateinitialdelay <Integer>] [updateretrydelay <Integer>]
|
||||
# [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*) | returnidonly]
|
||||
def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
def waitingForCreationToComplete(sleep_time):
|
||||
writeStdout(Ind.Spaces()+Msg.WAITING_FOR_SHARED_DRIVE_CREATION_TO_COMPLETE_SLEEPING.format(sleep_time))
|
||||
writeStderr(Ind.Spaces()+Msg.WAITING_FOR_SHARED_DRIVE_CREATION_TO_COMPLETE_SLEEPING.format(sleep_time))
|
||||
time.sleep(sleep_time)
|
||||
|
||||
requestId = str(uuid.uuid4())
|
||||
@@ -59267,6 +59277,9 @@ def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
addCSVData = {}
|
||||
hide = returnIdOnly = False
|
||||
orgUnit = orgUnitId = ci = None
|
||||
errorRetries = 5
|
||||
updateInitialDelay = 10
|
||||
updateRetryDelay = 10
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
if _getSharedDriveTheme(myarg, body):
|
||||
@@ -59288,6 +59301,12 @@ def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
addCSVData[k] = getString(Cmd.OB_STRING, minLen=0)
|
||||
elif myarg in ADMIN_ACCESS_OPTIONS:
|
||||
useDomainAdminAccess = True
|
||||
elif myarg == 'errorretries':
|
||||
errorRetries = getInteger(minVal=0, maxVal=10)
|
||||
elif myarg == 'updateinitialdelay':
|
||||
updateInitialDelay = getInteger(minVal=0, maxVal=60)
|
||||
elif myarg == 'updateretrydelay':
|
||||
updateRetryDelay = getInteger(minVal=0, maxVal=60)
|
||||
else:
|
||||
unknownArgumentExit()
|
||||
if csvPF:
|
||||
@@ -59328,7 +59347,7 @@ def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
break
|
||||
except (GAPI.transientError, GAPI.teamDriveAlreadyExists) as e:
|
||||
retry += 1
|
||||
if retry > 3:
|
||||
if retry > errorRetries:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.REQUEST_ID, requestId], str(e), i, count)
|
||||
break
|
||||
requestId = str(uuid.uuid4())
|
||||
@@ -59342,7 +59361,8 @@ def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
userSvcNotApplicableOrDriveDisabled(user, str(e), i, count)
|
||||
break
|
||||
if doUpdate and (updateBody or hide or orgUnit):
|
||||
waitingForCreationToComplete(30)
|
||||
if updateBody or hide:
|
||||
waitingForCreationToComplete(updateInitialDelay)
|
||||
try:
|
||||
if updateBody:
|
||||
Act.Set(Act.UPDATE)
|
||||
@@ -59351,20 +59371,21 @@ def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
try:
|
||||
callGAPI(drive.drives(), 'update',
|
||||
bailOnInternalError=True,
|
||||
throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
|
||||
throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN,
|
||||
GAPI.NO_MANAGE_TEAMDRIVE_ADMINISTRATOR_PRIVILEGE,
|
||||
GAPI.INTERNAL_ERROR, GAPI.FILE_NOT_FOUND],
|
||||
GAPI.BAD_REQUEST, GAPI.INTERNAL_ERROR, GAPI.PERMISSION_DENIED,
|
||||
GAPI.FILE_NOT_FOUND],
|
||||
useDomainAdminAccess=useDomainAdminAccess, driveId=driveId, body=updateBody)
|
||||
if not returnIdOnly and not csvPF:
|
||||
entityActionPerformed([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], i, count)
|
||||
break
|
||||
except GAPI.notFound as e:
|
||||
retry += 1
|
||||
if retry > 3:
|
||||
if retry > errorRetries:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.REQUEST_ID, requestId], str(e), i, count)
|
||||
break
|
||||
waitingForCreationToComplete(retry*15)
|
||||
except (GAPI.badRequest, GAPI.internalError) as e:
|
||||
waitingForCreationToComplete(updateRetryDelay)
|
||||
except (GAPI.badRequest, GAPI.internalError, GAPI.permissionDenied) as e:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], str(e), i, count)
|
||||
break
|
||||
except GAPI.fileNotFound as e:
|
||||
@@ -59385,12 +59406,12 @@ def createSharedDrive(users, useDomainAdminAccess=False):
|
||||
break
|
||||
except GAPI.notFound as e:
|
||||
retry += 1
|
||||
if retry > 3:
|
||||
if retry > errorRetries:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.REQUEST_ID, requestId], str(e), i, count)
|
||||
break
|
||||
time.sleep(retry*retry)
|
||||
waitingForCreationToComplete(updateRetryDelay)
|
||||
if orgUnit:
|
||||
ci = _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci)
|
||||
ci = _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci, returnIdOnly)
|
||||
except (GAPI.forbidden, GAPI.badRequest, GAPI.noManageTeamDriveAdministratorPrivilege) as e:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], str(e), i, count)
|
||||
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
|
||||
@@ -59459,7 +59480,7 @@ def updateSharedDrive(users, useDomainAdminAccess=False):
|
||||
driveId=driveId)
|
||||
entityActionPerformed([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], i, count)
|
||||
if orgUnit:
|
||||
ci = _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci)
|
||||
ci = _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci, False)
|
||||
except (GAPI.notFound, GAPI.forbidden, GAPI.badRequest, GAPI.internalError,
|
||||
GAPI.noManageTeamDriveAdministratorPrivilege) as e:
|
||||
entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], str(e), i, count)
|
||||
|
||||
@@ -111,6 +111,7 @@ LABEL_MUTATION_ILLEGAL_SELECTION = 'labelMutationIllegalSelection'
|
||||
LABEL_MUTATION_UNKNOWN_FIELD = 'labelMutationUnknownField'
|
||||
LIMIT_EXCEEDED = 'limitExceeded'
|
||||
LOGIN_REQUIRED = 'loginRequired'
|
||||
MALFORMED_WORKING_LOCATION_EVENT = 'malformedWorkingLocationEvent'
|
||||
MEMBER_NOT_FOUND = 'memberNotFound'
|
||||
NO_LIST_TEAMDRIVES_ADMINISTRATOR_PRIVILEGE = 'noListTeamDrivesAdministratorPrivilege'
|
||||
NO_MANAGE_TEAMDRIVE_ADMINISTRATOR_PRIVILEGE = 'noManageTeamDriveAdministratorPrivilege'
|
||||
@@ -149,6 +150,7 @@ SHARING_RATE_LIMIT_EXCEEDED = 'sharingRateLimitExceeded'
|
||||
SHORTCUT_TARGET_INVALID = 'shortcutTargetInvalid'
|
||||
STORAGE_QUOTA_EXCEEDED = 'storageQuotaExceeded'
|
||||
SYSTEM_ERROR = 'systemError'
|
||||
TARGET_USER_ROLE_LIMITED_BY_LICENSE_RESTRICTION = 'targetUserRoleLimitedByLicenseRestriction'
|
||||
TEAMDRIVE_ALREADY_EXISTS = 'teamDriveAlreadyExists'
|
||||
TEAMDRIVE_DOMAIN_USERS_ONLY_RESTRICTION = 'teamDriveDomainUsersOnlyRestriction'
|
||||
TEAMDRIVE_TEAM_MEMBERS_ONLY_RESTRICTION = 'teamDriveTeamMembersOnlyRestriction'
|
||||
@@ -196,7 +198,7 @@ DRIVE_COPY_THROW_REASONS = DRIVE_ACCESS_THROW_REASONS+[CANNOT_COPY_FILE, BAD_REQ
|
||||
DRIVE_GET_THROW_REASONS = DRIVE_USER_THROW_REASONS+[FILE_NOT_FOUND]
|
||||
DRIVE3_CREATE_ACL_THROW_REASONS = [BAD_REQUEST, INVALID, INVALID_SHARING_REQUEST, OWNERSHIP_CHANGE_ACROSS_DOMAIN_NOT_PERMITTED, CANNOT_SET_EXPIRATION,
|
||||
NOT_FOUND, TEAMDRIVE_DOMAIN_USERS_ONLY_RESTRICTION, TEAMDRIVE_TEAM_MEMBERS_ONLY_RESTRICTION,
|
||||
INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
|
||||
TARGET_USER_ROLE_LIMITED_BY_LICENSE_RESTRICTION, INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
|
||||
PUBLISH_OUT_NOT_PERMITTED, SHARE_IN_NOT_PERMITTED, SHARE_OUT_NOT_PERMITTED, SHARE_OUT_NOT_PERMITTED_TO_USER,
|
||||
CANNOT_SHARE_TEAMDRIVE_TOPFOLDER_WITH_ANYONEORDOMAINS,
|
||||
CANNOT_SHARE_TEAMDRIVE_WITH_NONGOOGLE_ACCOUNTS,
|
||||
@@ -213,7 +215,7 @@ DRIVE3_GET_ACL_REASONS = DRIVE_USER_THROW_REASONS+[FILE_NOT_FOUND, FORBIDDEN, IN
|
||||
DRIVE3_UPDATE_ACL_THROW_REASONS = [BAD_REQUEST, INVALID_OWNERSHIP_TRANSFER, CANNOT_REMOVE_OWNER, CANNOT_SET_EXPIRATION,
|
||||
OWNERSHIP_CHANGE_ACROSS_DOMAIN_NOT_PERMITTED,
|
||||
NOT_FOUND, TEAMDRIVE_DOMAIN_USERS_ONLY_RESTRICTION, TEAMDRIVE_TEAM_MEMBERS_ONLY_RESTRICTION,
|
||||
INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
|
||||
TARGET_USER_ROLE_LIMITED_BY_LICENSE_RESTRICTION, INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
|
||||
PUBLISH_OUT_NOT_PERMITTED, SHARE_IN_NOT_PERMITTED, SHARE_OUT_NOT_PERMITTED, SHARE_OUT_NOT_PERMITTED_TO_USER,
|
||||
CANNOT_SHARE_TEAMDRIVE_TOPFOLDER_WITH_ANYONEORDOMAINS,
|
||||
CANNOT_SHARE_TEAMDRIVE_WITH_NONGOOGLE_ACCOUNTS,
|
||||
@@ -501,6 +503,8 @@ class limitExceeded(Exception):
|
||||
pass
|
||||
class loginRequired(Exception):
|
||||
pass
|
||||
class malformedWorkingLocationEvent(Exception):
|
||||
pass
|
||||
class memberNotFound(Exception):
|
||||
pass
|
||||
class noListTeamDrivesAdministratorPrivilege(Exception):
|
||||
@@ -577,6 +581,8 @@ class storageQuotaExceeded(Exception):
|
||||
pass
|
||||
class systemError(Exception):
|
||||
pass
|
||||
class targetUserRoleLimitedByLicenseRestriction(Exception):
|
||||
pass
|
||||
class teamDriveAlreadyExists(Exception):
|
||||
pass
|
||||
class teamDriveDomainUsersOnlyRestriction(Exception):
|
||||
@@ -701,6 +707,7 @@ REASON_EXCEPTION_MAP = {
|
||||
LABEL_MUTATION_UNKNOWN_FIELD: labelMutationUnknownField,
|
||||
LIMIT_EXCEEDED: limitExceeded,
|
||||
LOGIN_REQUIRED: loginRequired,
|
||||
MALFORMED_WORKING_LOCATION_EVENT: malformedWorkingLocationEvent,
|
||||
MEMBER_NOT_FOUND: memberNotFound,
|
||||
NO_LIST_TEAMDRIVES_ADMINISTRATOR_PRIVILEGE: noListTeamDrivesAdministratorPrivilege,
|
||||
NO_MANAGE_TEAMDRIVE_ADMINISTRATOR_PRIVILEGE: noManageTeamDriveAdministratorPrivilege,
|
||||
@@ -739,6 +746,7 @@ REASON_EXCEPTION_MAP = {
|
||||
SHORTCUT_TARGET_INVALID: shortcutTargetInvalid,
|
||||
STORAGE_QUOTA_EXCEEDED: storageQuotaExceeded,
|
||||
SYSTEM_ERROR: systemError,
|
||||
TARGET_USER_ROLE_LIMITED_BY_LICENSE_RESTRICTION: targetUserRoleLimitedByLicenseRestriction,
|
||||
TEAMDRIVE_ALREADY_EXISTS: teamDriveAlreadyExists,
|
||||
TEAMDRIVE_DOMAIN_USERS_ONLY_RESTRICTION: teamDriveDomainUsersOnlyRestriction,
|
||||
TEAMDRIVE_TEAM_MEMBERS_ONLY_RESTRICTION: teamDriveTeamMembersOnlyRestriction,
|
||||
|
||||
@@ -107,7 +107,9 @@ _SKUS = {
|
||||
'1010020029': {
|
||||
'product': 'Google-Apps', 'aliases': ['wes', 'wsentstarter', 'workspaceenterprisestarter'], 'displayName': 'Workspace Enterprise Starter'},
|
||||
'1010020030': {
|
||||
'product': 'Google-Apps', 'aliases': ['wsflw', 'workspacefrontline', 'workspacefrontlineworker'], 'displayName': 'Google Workspace Frontline'},
|
||||
'product': 'Google-Apps', 'aliases': ['wsflw', 'workspacefrontline', 'workspacefrontlineworker'], 'displayName': 'Google Workspace Frontline Starter'},
|
||||
'1010020031`': {
|
||||
'product': 'Google-Apps', 'aliases': ['wsflwstan', 'workspacefrontlinestan', 'workspacefrontlineworkerstan'], 'displayName': 'Google Workspace Frontline Standard'},
|
||||
'1010340001': {
|
||||
'product': '101034', 'aliases': ['gseau', 'enterprisearchived', 'gsuiteenterprisearchived'], 'displayName': 'Google Workspace Enterprise Plus - Archived User'},
|
||||
'1010340002': {
|
||||
@@ -116,12 +118,18 @@ _SKUS = {
|
||||
'product': '101034', 'aliases': ['wsbizplusarchived', 'workspacebusinessplusarchived'], 'displayName': 'Google Workspace Business Plus - Archived User'},
|
||||
'1010340004': {
|
||||
'product': '101034', 'aliases': ['wsentstanarchived', 'workspaceenterprisestandardarchived'], 'displayName': 'Google Workspace Enterprise Standard - Archived User'},
|
||||
'1010340005': {
|
||||
'product': '101034', 'aliases': ['wsbizstarterarchived', 'workspacebusinessstarterarchived'], 'displayName': 'Google Workspace Business Starter - Archived User'},
|
||||
'1010340006': {
|
||||
'product': '101034', 'aliases': ['wsbizstanarchived', 'workspacebusinessstanarchived'], 'displayName': 'Google Workspace Business Standard - Archived User'},
|
||||
'1010060001': {
|
||||
'product': '101006', 'aliases': ['gsuiteessentials', 'essentials',
|
||||
'd4e', 'driveenterprise', 'drive4enterprise',
|
||||
'wsess', 'workspaceesentials'], 'displayName': 'Google Workspace Essentials'},
|
||||
'1010060003': {
|
||||
'product': 'Google-Apps', 'aliases': ['wsentess', 'workspaceenterpriseessentials'], 'displayName': 'Google Workspace Enterprise Essentials'},
|
||||
'1010060005': {
|
||||
'product': 'Google-Apps', 'aliases': ['wsessplus', 'workspaceessentialsplus'], 'displayName': 'Google Workspace Essentials Plus'},
|
||||
'Google-Drive-storage-20GB': {
|
||||
'product': 'Google-Drive-storage', 'aliases': ['drive20gb', '20gb', 'googledrivestorage20gb'], 'displayName': 'Google Drive Storage 20GB'},
|
||||
'Google-Drive-storage-50GB': {
|
||||
|
||||
Reference in New Issue
Block a user