mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-28 09:51:36 +00:00
Standardize getting Boolean values (#695)
* Standardize getting Boolean values * Fix another OU path query qupting
This commit is contained in:
@@ -777,7 +777,7 @@ gam create alias|nickname <EmailAddress> user|group|target <UniqueID>|<EmailAddr
|
||||
gam update alias|nickname <EmailAddress> user|group|target <UniqueID>|<EmailAddress>
|
||||
gam delete alias|nickname [user|group|target] <UniqueID>|<EmailAddress>
|
||||
gam info alias|nickname <EmailAddress>
|
||||
gam print aliases|nucknames [todrive] [shownoneditable] [nogroups] [nousers] [query <QueryUser>]
|
||||
gam print aliases|nicknames [todrive] [shownoneditable] [nogroups] [nousers] [query <QueryUser>]
|
||||
|
||||
gam calendar <CalendarItem> add <CalendarACLRole> ([user] <EmailAddress>)|(group <EmailAddress>)|(domain [<DomainName>])|default
|
||||
gam calendar <CalendarItem> update <CalendarACLRole> ([user] <EmailAddress>)|(group <EmailAddress>)|(domain [<DomainName>])|default
|
||||
|
||||
116
src/gam.py
116
src/gam.py
@@ -151,6 +151,14 @@ def csvFieldErrorExit(fieldName, fieldNames):
|
||||
def printLine(message):
|
||||
sys.stdout.write(message+u'\n')
|
||||
#
|
||||
def getBoolean(value, item):
|
||||
value = value.lower()
|
||||
if value in true_values:
|
||||
return True
|
||||
if value in false_values:
|
||||
return False
|
||||
systemErrorExit(2, u'Value for {0} must be {1} or {2}; got {3}'.format(item, u'|'.join(true_values), u'|'.join(false_values), value))
|
||||
|
||||
def getCharSet(i):
|
||||
if (i == len(sys.argv)) or (sys.argv[i].lower() != u'charset'):
|
||||
return (i, GC_Values.get(GC_CHARSET, GM_Globals[GM_SYS_ENCODING]))
|
||||
@@ -2779,20 +2787,10 @@ def getCalendarAttributes(i, body, function):
|
||||
while i < len(sys.argv):
|
||||
myarg = sys.argv[i].lower().replace(u'_', u'')
|
||||
if myarg == u'selected':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'selected'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'selected'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'Value for selected must be true or false; got %s' % sys.argv[i+1])
|
||||
body[u'selected'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg == u'hidden':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'hidden'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'hidden'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'Value for hidden must be true or false; got %s' % sys.argv[i+1])
|
||||
body[u'hidden'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg == u'summary':
|
||||
body[u'summaryOverride'] = sys.argv[i+1]
|
||||
@@ -4287,13 +4285,7 @@ def getDriveFileAttribute(i, body, parameters, myarg, update=False):
|
||||
elif myarg in DRIVEFILE_LABEL_CHOICES_MAP:
|
||||
body.setdefault(u'labels', {})
|
||||
if update:
|
||||
value = sys.argv[i+1].lower()
|
||||
if value in true_values:
|
||||
body[u'labels'][DRIVEFILE_LABEL_CHOICES_MAP[myarg]] = True
|
||||
elif value in false_values:
|
||||
body[u'labels'][DRIVEFILE_LABEL_CHOICES_MAP[myarg]] = False
|
||||
else:
|
||||
systemErrorExit(2, 'value for %s must be true or false; got %s' % (myarg, sys.argv[i+1]))
|
||||
body[u'labels'][DRIVEFILE_LABEL_CHOICES_MAP[myarg]] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
else:
|
||||
body[u'labels'][DRIVEFILE_LABEL_CHOICES_MAP[myarg]] = True
|
||||
@@ -4714,12 +4706,7 @@ def transferDriveFiles(users):
|
||||
break
|
||||
|
||||
def doImap(users):
|
||||
if sys.argv[4].lower() in true_values:
|
||||
enable = True
|
||||
elif sys.argv[4].lower() in false_values:
|
||||
enable = False
|
||||
else:
|
||||
systemErrorExit(2, 'value for "gam <users> imap" must be true or false; got %s' % sys.argv[4])
|
||||
enable = getBoolean(sys.argv[4], u'gam <users> imap')
|
||||
body = {u'enabled': enable, u'autoExpunge': True, u'expungeBehavior': u'archive', u'maxFolderSize': 0}
|
||||
i = 5
|
||||
while i < len(sys.argv):
|
||||
@@ -4813,12 +4800,7 @@ def doLicense(users, operation):
|
||||
callGAPI(lic.licenseAssignments(), operation, soft_errors=True, productId=productId, skuId=old_sku, userId=user, body={u'skuId': skuId})
|
||||
|
||||
def doPop(users):
|
||||
if sys.argv[4].lower() in true_values:
|
||||
enable = True
|
||||
elif sys.argv[4].lower() in false_values:
|
||||
enable = False
|
||||
else:
|
||||
systemErrorExit(2, 'value for "gam <users> pop" must be true or false; got %s' % sys.argv[4])
|
||||
enable = getBoolean(sys.argv[4], u'gam <users> pop')
|
||||
body = {u'accessWindow': [u'disabled', u'allMail'][enable], u'disposition': u'leaveInInbox'}
|
||||
i = 5
|
||||
while i < len(sys.argv):
|
||||
@@ -4934,12 +4916,7 @@ def getSendAsAttributes(i, myarg, body, tagReplacements, command):
|
||||
body[u'isDefault'] = True
|
||||
i += 1
|
||||
elif myarg == u'treatasalias':
|
||||
if sys.argv[i+1].lower() == u'true':
|
||||
body[u'treatAsAlias'] = True
|
||||
elif sys.argv[i+1].lower() == u'false':
|
||||
body[u'treatAsAlias'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'value for treatasalias must be true or false; got %s' % sys.argv[i+1])
|
||||
body[u'treatAsAlias'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
else:
|
||||
systemErrorExit(2, '%s is not a valid argument for "gam <users> %s"' % (sys.argv[i], command))
|
||||
@@ -5917,12 +5894,7 @@ def infoFilters(users):
|
||||
_showFilter(result, 1, 1, labels)
|
||||
|
||||
def doForward(users):
|
||||
if sys.argv[4].lower() in true_values:
|
||||
enable = True
|
||||
elif sys.argv[4].lower() in false_values:
|
||||
enable = False
|
||||
else:
|
||||
systemErrorExit(2, 'value for "gam <users> forward" must be true or false; got %s' % sys.argv[4])
|
||||
enable = getBoolean(sys.argv[4], u'gam <users> forward')
|
||||
body = {u'enabled': enable}
|
||||
i = 5
|
||||
while i < len(sys.argv):
|
||||
@@ -6159,12 +6131,7 @@ def getSignature(users):
|
||||
_showSendAs(result, i, count, formatSig)
|
||||
|
||||
def doVacation(users):
|
||||
if sys.argv[4].lower() in true_values:
|
||||
enable = True
|
||||
elif sys.argv[4].lower() in false_values:
|
||||
enable = False
|
||||
else:
|
||||
systemErrorExit(2, 'value for "gam <users> vacation" must be true or false; got %s' % sys.argv[4])
|
||||
enable = getBoolean(sys.argv[4], u'gam <users> vacation')
|
||||
body = {u'enableAutoReply': enable}
|
||||
if enable:
|
||||
responseBodyType = u'responseBodyPlainText'
|
||||
@@ -6487,28 +6454,13 @@ def getUserAttributes(i, cd, updateCmd=False):
|
||||
need_password = True
|
||||
i += 2
|
||||
elif myarg == u'admin':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
admin_body[u'status'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
admin_body[u'status'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'admin must be on or off; got %s' % sys.argv[i+1])
|
||||
admin_body[u'status'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg == u'suspended':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'suspended'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'suspended'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'suspended must be on or off; got %s' % sys.argv[i+1])
|
||||
body[u'suspended'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg == u'gal':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'includeInGlobalAddressList'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'includeInGlobalAddressList'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'gal must be on or off; got %s' % sys.argv[i+1])
|
||||
body[u'includeInGlobalAddressList'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg in [u'sha', u'sha1', u'sha-1']:
|
||||
body[u'hashFunction'] = u'SHA-1'
|
||||
@@ -6526,28 +6478,13 @@ def getUserAttributes(i, cd, updateCmd=False):
|
||||
need_to_hash_password = False
|
||||
i += 1
|
||||
elif myarg == u'changepassword':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'changePasswordAtNextLogin'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'changePasswordAtNextLogin'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'changepassword must be on or off; got %s' % sys.argv[i+1])
|
||||
body[u'changePasswordAtNextLogin'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg == u'ipwhitelisted':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'ipWhitelisted'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'ipWhitelisted'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'ipwhitelisted must be on or off; got %s' % sys.argv[i+1])
|
||||
body[u'ipWhitelisted'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg == u'agreedtoterms':
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
body[u'agreedToTerms'] = True
|
||||
elif sys.argv[i+1].lower() in false_values:
|
||||
body[u'agreedToTerms'] = False
|
||||
else:
|
||||
systemErrorExit(2, 'agreedtoterms must be on or off; got %s' % sys.argv[i+1])
|
||||
body[u'agreedToTerms'] = getBoolean(sys.argv[i+1], myarg)
|
||||
i += 2
|
||||
elif myarg in [u'org', u'ou']:
|
||||
body[u'orgUnitPath'] = sys.argv[i+1]
|
||||
@@ -6830,12 +6767,7 @@ def getUserAttributes(i, cd, updateCmd=False):
|
||||
posix[u'homeDirectory'] = sys.argv[i+1]
|
||||
i += 2
|
||||
elif myopt in [u'primary']:
|
||||
if sys.argv[i+1].lower() in true_values:
|
||||
posix[u'primary'] = True
|
||||
elif sys.argv[i+1] in false_values:
|
||||
posix[u'primary'] = False
|
||||
else:
|
||||
systemErrorExit(3, 'primary should be true or false, got %s' % sys.argv[i+1])
|
||||
posix[u'primary'] = getBoolean(sys.argv[i+1], myopt)
|
||||
i += 2
|
||||
elif myopt in [u'shell']:
|
||||
posix[u'shell'] = sys.argv[i+1]
|
||||
@@ -11352,7 +11284,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, member_type=No
|
||||
page_message = u'Got %%total_items%% users...'
|
||||
members = callGAPIpages(cd.users(), u'list', u'users', page_message=page_message,
|
||||
customer=GC_Values[GC_CUSTOMER_ID], fields=u'nextPageToken,users(primaryEmail,suspended,orgUnitPath)',
|
||||
query=u"orgUnitPath='%s'" % ou, maxResults=GC_Values[GC_USER_MAX_RESULTS])
|
||||
query=orgUnitPathQuery(ou), maxResults=GC_Values[GC_USER_MAX_RESULTS])
|
||||
for member in members:
|
||||
if ou.lower() != member[u'orgUnitPath'].lower():
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user