mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 12:21:35 +00:00
Cleanup gam delete/update drivefileacl
This commit is contained in:
@@ -85,6 +85,7 @@ If an item contains spaces, it should be surrounded by " or '.
|
|||||||
<NotificationID> ::= <String>
|
<NotificationID> ::= <String>
|
||||||
<OrgUnitID> ::= <String>
|
<OrgUnitID> ::= <String>
|
||||||
<OrgUnitPath> ::= /|(/<String)+
|
<OrgUnitPath> ::= /|(/<String)+
|
||||||
|
<PermissionID> ::= id:<String>|<EmailAddress>|anyone|anyonewithlink
|
||||||
<PrinterID> ::= <String>
|
<PrinterID> ::= <String>
|
||||||
<PrintJobID> ::= <String>
|
<PrintJobID> ::= <String>
|
||||||
<PropertyKey> ::= <String>
|
<PropertyKey> ::= <String>
|
||||||
@@ -458,7 +459,7 @@ gam print admins [todrive] [user <UserItem>] [role <RoleItem>]
|
|||||||
gam print adminroles|roles [todrive]
|
gam print adminroles|roles [todrive]
|
||||||
|
|
||||||
gam create domain <DomainName>
|
gam create domain <DomainName>
|
||||||
gam update domain <DomainName> [primary]
|
gam update domain <DomainName> primary
|
||||||
gam delete domain <DomainName>
|
gam delete domain <DomainName>
|
||||||
gam info domain [<DomainName>]
|
gam info domain [<DomainName>]
|
||||||
gam print domains [todrive]
|
gam print domains [todrive]
|
||||||
@@ -655,10 +656,10 @@ gam <UserTypeEntity> transfer drive <UserItem> [keepuser]
|
|||||||
gam <UserTypeEntity> delete|del emptydrivefolders
|
gam <UserTypeEntity> delete|del emptydrivefolders
|
||||||
|
|
||||||
gam <UserTypeEntity> add drivefileacl <DriveFileID> anyone|(user <UserItem>)|(group <GroupItem>)|(domain <DomainName>)
|
gam <UserTypeEntity> add drivefileacl <DriveFileID> anyone|(user <UserItem>)|(group <GroupItem>)|(domain <DomainName>)
|
||||||
[withlink] [role reader|commenter|writer|owner|editor] [sendmail] [emailmessage <String>]
|
(role reader|commenter|writer|owner|editor) [withlink] [sendmail] [emailmessage <String>]
|
||||||
gam <UserTypeEntity> update drivefileacl <DriveFileID> id:<String>|<EmailAddress>
|
gam <UserTypeEntity> update drivefileacl <DriveFileID> <PermissionID>
|
||||||
[withlink] [role reader|commenter|writer|owner|editor] [transferownership <Boolean>]
|
(role reader|commenter|writer|owner|editor) [withlink] [transferownership <Boolean>]
|
||||||
gam <UserTypeEntity> delete|del drivefileacl <DriveFileID> id:<String>|<EmailAddress>
|
gam <UserTypeEntity> delete|del drivefileacl <DriveFileID> <PermissionID>
|
||||||
gam <UserTypeEntity> show drivefileacl <DriveFileID>
|
gam <UserTypeEntity> show drivefileacl <DriveFileID>
|
||||||
|
|
||||||
gam <UserTypeEntity> delete|del alias|aliases
|
gam <UserTypeEntity> delete|del alias|aliases
|
||||||
|
|||||||
35
src/gam.py
35
src/gam.py
@@ -3275,8 +3275,13 @@ def doDriveActivity(users):
|
|||||||
def printPermission(permission):
|
def printPermission(permission):
|
||||||
if u'name' in permission:
|
if u'name' in permission:
|
||||||
print convertUTF8(permission[u'name'])
|
print convertUTF8(permission[u'name'])
|
||||||
elif (u'id' in permission) and (permission[u'id'] == u'anyone'):
|
elif u'id' in permission:
|
||||||
|
if permission[u'id'] == u'anyone':
|
||||||
print u'Anyone'
|
print u'Anyone'
|
||||||
|
elif permission[u'id'] == u'anyoneWithLink':
|
||||||
|
print u'Anyone with Link'
|
||||||
|
else:
|
||||||
|
print permission[u'id']
|
||||||
for key in permission:
|
for key in permission:
|
||||||
if key in [u'name', u'kind', u'etag', u'selfLink',]:
|
if key in [u'name', u'kind', u'etag', u'selfLink',]:
|
||||||
continue
|
continue
|
||||||
@@ -3291,17 +3296,26 @@ def showDriveFileACL(users):
|
|||||||
printPermission(permission)
|
printPermission(permission)
|
||||||
print u''
|
print u''
|
||||||
|
|
||||||
|
def getPermissionId(argstr):
|
||||||
|
permissionId = argstr.strip().lower()
|
||||||
|
if permissionId[:3] == u'id:':
|
||||||
|
return (False, argstr.strip()[3:])
|
||||||
|
if permissionId == u'anyone':
|
||||||
|
return (False, permissionId)
|
||||||
|
if permissionId == u'anyonewithlink':
|
||||||
|
return (False, u'anyoneWithLink')
|
||||||
|
if permissionId.find(u'@') == -1:
|
||||||
|
permissionId = u'%s@%s' % (permissionId, GC_Values[GC_DOMAIN])
|
||||||
|
return (True, permissionId)
|
||||||
|
|
||||||
def delDriveFileACL(users):
|
def delDriveFileACL(users):
|
||||||
fileId = sys.argv[5]
|
fileId = sys.argv[5]
|
||||||
permissionId = unicode(sys.argv[6])
|
isEmail, permissionId = getPermissionId(sys.argv[6])
|
||||||
for user in users:
|
for user in users:
|
||||||
drive = buildGAPIServiceObject(u'drive', user)
|
drive = buildGAPIServiceObject(u'drive', user)
|
||||||
if permissionId[:3].lower() == u'id:':
|
if isEmail:
|
||||||
permissionId = permissionId[3:]
|
|
||||||
elif permissionId.lower() in [u'anyone']:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
permissionId = callGAPI(drive.permissions(), u'getIdForEmail', email=permissionId, fields=u'id')[u'id']
|
permissionId = callGAPI(drive.permissions(), u'getIdForEmail', email=permissionId, fields=u'id')[u'id']
|
||||||
|
isEmail = False
|
||||||
print u'Removing permission for %s from %s' % (permissionId, fileId)
|
print u'Removing permission for %s from %s' % (permissionId, fileId)
|
||||||
callGAPI(drive.permissions(), u'delete', fileId=fileId, permissionId=permissionId)
|
callGAPI(drive.permissions(), u'delete', fileId=fileId, permissionId=permissionId)
|
||||||
|
|
||||||
@@ -3349,7 +3363,7 @@ def addDriveFileACL(users):
|
|||||||
|
|
||||||
def updateDriveFileACL(users):
|
def updateDriveFileACL(users):
|
||||||
fileId = sys.argv[5]
|
fileId = sys.argv[5]
|
||||||
permissionId = unicode(sys.argv[6])
|
isEmail, permissionId = getPermissionId(sys.argv[6])
|
||||||
transferOwnership = None
|
transferOwnership = None
|
||||||
body = {}
|
body = {}
|
||||||
i = 7
|
i = 7
|
||||||
@@ -3379,10 +3393,9 @@ def updateDriveFileACL(users):
|
|||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
for user in users:
|
for user in users:
|
||||||
drive = buildGAPIServiceObject(u'drive', user)
|
drive = buildGAPIServiceObject(u'drive', user)
|
||||||
if permissionId[:3].lower() == u'id:':
|
if isEmail:
|
||||||
permissionId = permissionId[3:]
|
|
||||||
else:
|
|
||||||
permissionId = callGAPI(drive.permissions(), u'getIdForEmail', email=permissionId, fields=u'id')[u'id']
|
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'patch', fileId=fileId, permissionId=permissionId, transferOwnership=transferOwnership, body=body)
|
||||||
printPermission(result)
|
printPermission(result)
|
||||||
|
|||||||
Reference in New Issue
Block a user