mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-04 04:41:35 +00:00
Update Drive ACLs to v3
This commit is contained in:
29
src/gam.py
29
src/gam.py
@@ -3604,43 +3604,38 @@ def addDriveFileACL(users):
|
|||||||
|
|
||||||
def updateDriveFileACL(users):
|
def updateDriveFileACL(users):
|
||||||
fileId = sys.argv[5]
|
fileId = sys.argv[5]
|
||||||
isEmail, permissionId = getPermissionId(sys.argv[6])
|
permissionId = getPermissionId(sys.argv[6])
|
||||||
transferOwnership = None
|
transferOwnership = None
|
||||||
|
removeExpiration = None
|
||||||
body = {}
|
body = {}
|
||||||
i = 7
|
i = 7
|
||||||
while i < len(sys.argv):
|
while i < len(sys.argv):
|
||||||
if sys.argv[i].lower().replace(u'_', u'') == u'withlink':
|
if sys.argv[i].lower().replace(u'_', u'') == u'withlink':
|
||||||
body[u'withLink'] = True
|
body[u'allowFileDiscovery'] = False
|
||||||
|
i += 1
|
||||||
|
elif sys.argv[i].lower() == u'discoverable':
|
||||||
|
body[u'allowFileDiscovery'] = True
|
||||||
|
i += 1
|
||||||
|
elif sys.argv[i].lower().replace(u'_', u'') == u'removeexpiration':
|
||||||
|
removeExpiration = True
|
||||||
i += 1
|
i += 1
|
||||||
elif sys.argv[i].lower() == u'role':
|
elif sys.argv[i].lower() == u'role':
|
||||||
body[u'role'] = sys.argv[i+1]
|
body[u'role'] = sys.argv[i+1]
|
||||||
if body[u'role'] not in [u'reader', u'commenter', u'writer', u'owner']:
|
if body[u'role'] not in [u'reader', u'commenter', u'writer', u'owner']:
|
||||||
print u'ERROR: role must be reader, commenter, writer or owner; got %s' % body[u'role']
|
print u'ERROR: role must be reader, commenter, writer or owner; got %s' % body[u'role']
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
if body[u'role'] == u'commenter':
|
if body[u'role'] == u'owner':
|
||||||
body[u'role'] = u'reader'
|
|
||||||
body[u'additionalRoles'] = [u'commenter']
|
|
||||||
i += 2
|
|
||||||
elif sys.argv[i].lower().replace(u'_', u'') == u'transferownership':
|
|
||||||
if sys.argv[i+1].lower() in true_values:
|
|
||||||
transferOwnership = True
|
transferOwnership = True
|
||||||
elif sys.argv[i+1].lower() in false_values:
|
|
||||||
transferOwnership = False
|
|
||||||
else:
|
|
||||||
print u'ERROR: transferownership must be true or false; got %s' % sys.argv[i+1].lower()
|
|
||||||
i += 2
|
i += 2
|
||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam <users> update drivefileacl"' % sys.argv[i]
|
print u'ERROR: %s is not a valid argument for "gam <users> update drivefileacl"' % sys.argv[i]
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
for user in users:
|
for user in users:
|
||||||
user, drive = buildDriveGAPIObject(user)
|
user, drive = buildDrive3GAPIObject(user)
|
||||||
if not drive:
|
if not drive:
|
||||||
continue
|
continue
|
||||||
if isEmail:
|
|
||||||
permissionId = callGAPI(drive.permissions(), u'getIdForEmail', email=permissionId, fields=u'id')[u'id']
|
|
||||||
isEmail = False
|
|
||||||
print u'updating permissions for %s to file %s' % (permissionId, fileId)
|
print u'updating permissions for %s to file %s' % (permissionId, fileId)
|
||||||
result = callGAPI(drive.permissions(), u'patch', fileId=fileId, permissionId=permissionId, transferOwnership=transferOwnership, body=body)
|
result = callGAPI(drive.permissions(), u'update', fields=u'*', fileId=fileId, permissionId=permissionId, transferOwnership=transferOwnership, body=body)
|
||||||
printPermission(result)
|
printPermission(result)
|
||||||
|
|
||||||
def _stripMeInOwners(query):
|
def _stripMeInOwners(query):
|
||||||
|
|||||||
Reference in New Issue
Block a user