mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Minor cleanups (#636)
* Minor cleanups In print users allow actual field names isenforcedin2sv and isenrolledin2sv In print users, add delimiter and sortheaders options In print groups, add sortheaders option * Fixed bug in gam oauth create where entering `e` to exit without changes didn't exit.
This commit is contained in:
@@ -422,8 +422,8 @@ Named items
|
|||||||
ipwhitelisted|
|
ipwhitelisted|
|
||||||
isdelegatedadmin|admin|isadmin|
|
isdelegatedadmin|admin|isadmin|
|
||||||
ismailboxsetup|
|
ismailboxsetup|
|
||||||
is2svenforced|
|
isenforcedin2sv|is2svenforced|
|
||||||
is2svenrolled|
|
isenrolledin2sv|is2svenrolled|
|
||||||
lastlogintime|
|
lastlogintime|
|
||||||
locations|location|
|
locations|location|
|
||||||
noneditablealiases|aliases|nicknames|
|
noneditablealiases|aliases|nicknames|
|
||||||
@@ -468,6 +468,7 @@ Items, separated by spaces, with spaces or commas in the items themselves: "'it
|
|||||||
<GroupList> ::= "<GroupItem>(,<GroupItem>)*"
|
<GroupList> ::= "<GroupItem>(,<GroupItem>)*"
|
||||||
<GuardianStateList> ::= "<GuardianState>(,<GuardianState>)*"
|
<GuardianStateList> ::= "<GuardianState>(,<GuardianState>)*"
|
||||||
<LabelNameList> ::= "<LabelName>(,<LabelName)*"
|
<LabelNameList> ::= "<LabelName>(,<LabelName)*"
|
||||||
|
<LanguageList> ::= "<Language>(,<Language)*"
|
||||||
<MatterItemList> ::= "<MatterItem>(,<MatterItem>)*"
|
<MatterItemList> ::= "<MatterItem>(,<MatterItem>)*"
|
||||||
<MembersFieldNameList> ::= "<MembersFieldName>(,<MembersFieldName>)*"
|
<MembersFieldNameList> ::= "<MembersFieldName>(,<MembersFieldName>)*"
|
||||||
<MobileList> ::= "<MobileId>(,<MobileId>)*"
|
<MobileList> ::= "<MobileId>(,<MobileId>)*"
|
||||||
@@ -802,8 +803,9 @@ gam delete group <GroupItem>
|
|||||||
gam info group <GroupItem> [nousers] [noaliases] [groups]
|
gam info group <GroupItem> [nousers] [noaliases] [groups]
|
||||||
|
|
||||||
gam print groups [todrive] ([domain <DomainName>] [member <UserItem>])
|
gam print groups [todrive] ([domain <DomainName>] [member <UserItem>])
|
||||||
[maxresults <Number>] [allfields|([settings] <GroupFieldName>* [fields <GroupFieldNameList>])] [delimiter <Character>]
|
[maxresults <Number>] [allfields|([settings] <GroupFieldName>* [fields <GroupFieldNameList>])]
|
||||||
[members|memberscount] [managers|managerscount] [owners|ownerscount]
|
[members|memberscount] [managers|managerscount] [owners|ownerscount]
|
||||||
|
[delimiter <Character>] [sortheaders]
|
||||||
|
|
||||||
gam print group-members|groups-members [todrive] ([domain <DomainName>] [member <UserItem>])|[group <GroupItem>]
|
gam print group-members|groups-members [todrive] ([domain <DomainName>] [member <UserItem>])|[group <GroupItem>]
|
||||||
[membernames] [fields <MembersFieldNameList>]
|
[membernames] [fields <MembersFieldNameList>]
|
||||||
@@ -837,6 +839,7 @@ gam print users [todrive] ([domain <DomainName>] [query <QueryUser>] [deleted_on
|
|||||||
[groups] [license|licenses|licence|licences] [emailpart|emailparts|username]
|
[groups] [license|licenses|licence|licences] [emailpart|emailparts|username]
|
||||||
[orderby <UserOrderByFieldName> [ascending|descending]] [userview]
|
[orderby <UserOrderByFieldName> [ascending|descending]] [userview]
|
||||||
[allfields|basic|full | ((<UserFieldName>* | fields <UserFieldNameList>) [schemas|custom all|<SchemaNameList>])]
|
[allfields|basic|full | ((<UserFieldName>* | fields <UserFieldNameList>) [schemas|custom all|<SchemaNameList>])]
|
||||||
|
[delimiter <Character>] [sortheaders]
|
||||||
gam <UserTypeEntity> print
|
gam <UserTypeEntity> print
|
||||||
|
|
||||||
Summary of printing:
|
Summary of printing:
|
||||||
|
|||||||
26
src/gam.py
26
src/gam.py
@@ -9918,6 +9918,8 @@ USER_ARGUMENT_TO_PROPERTY_MAP = {
|
|||||||
u'ipwhitelisted': [u'ipWhitelisted',],
|
u'ipwhitelisted': [u'ipWhitelisted',],
|
||||||
u'isadmin': [u'isAdmin', u'isDelegatedAdmin',],
|
u'isadmin': [u'isAdmin', u'isDelegatedAdmin',],
|
||||||
u'isdelegatedadmin': [u'isAdmin', u'isDelegatedAdmin',],
|
u'isdelegatedadmin': [u'isAdmin', u'isDelegatedAdmin',],
|
||||||
|
u'isenforcedin2sv': [u'isEnforcedIn2Sv',],
|
||||||
|
u'isenrolledin2sv': [u'isEnrolledIn2Sv',],
|
||||||
u'is2svenforced': [u'isEnforcedIn2Sv',],
|
u'is2svenforced': [u'isEnforcedIn2Sv',],
|
||||||
u'is2svenrolled': [u'isEnrolledIn2Sv',],
|
u'is2svenrolled': [u'isEnrolledIn2Sv',],
|
||||||
u'ismailboxsetup': [u'isMailboxSetup',],
|
u'ismailboxsetup': [u'isMailboxSetup',],
|
||||||
@@ -9971,6 +9973,8 @@ def doPrintUsers():
|
|||||||
customFieldMask = None
|
customFieldMask = None
|
||||||
sortHeaders = getGroupFeed = getLicenseFeed = email_parts = False
|
sortHeaders = getGroupFeed = getLicenseFeed = email_parts = False
|
||||||
viewType = deleted_only = orderBy = sortOrder = None
|
viewType = deleted_only = orderBy = sortOrder = None
|
||||||
|
groupDelimiter = u' '
|
||||||
|
licenseDelimiter = u','
|
||||||
i = 3
|
i = 3
|
||||||
while i < len(sys.argv):
|
while i < len(sys.argv):
|
||||||
myarg = sys.argv[i].lower().replace(u'_', u'')
|
myarg = sys.argv[i].lower().replace(u'_', u'')
|
||||||
@@ -9984,6 +9988,12 @@ def doPrintUsers():
|
|||||||
sortHeaders = True
|
sortHeaders = True
|
||||||
fieldsList = []
|
fieldsList = []
|
||||||
i += 1
|
i += 1
|
||||||
|
elif myarg == u'delimiter':
|
||||||
|
groupDelimiter = licenseDelimiter = sys.argv[i+1]
|
||||||
|
i += 2
|
||||||
|
elif myarg == u'sortheaders':
|
||||||
|
sortHeaders = True
|
||||||
|
i += 1
|
||||||
elif myarg in [u'custom', u'schemas']:
|
elif myarg in [u'custom', u'schemas']:
|
||||||
fieldsList.append(u'customSchemas')
|
fieldsList.append(u'customSchemas')
|
||||||
if sys.argv[i+1].lower() == u'all':
|
if sys.argv[i+1].lower() == u'all':
|
||||||
@@ -10079,12 +10089,7 @@ def doPrintUsers():
|
|||||||
user_email = user[u'primaryEmail']
|
user_email = user[u'primaryEmail']
|
||||||
sys.stderr.write(u"Getting Group Membership for %s (%s/%s)\r\n" % (user_email, user_count, total_users))
|
sys.stderr.write(u"Getting Group Membership for %s (%s/%s)\r\n" % (user_email, user_count, total_users))
|
||||||
groups = callGAPIpages(cd.groups(), u'list', u'groups', userKey=user_email)
|
groups = callGAPIpages(cd.groups(), u'list', u'groups', userKey=user_email)
|
||||||
grouplist = u''
|
user[u'Groups'] = groupDelimiter.join([groupname[u'email'] for groupname in groups])
|
||||||
for groupname in groups:
|
|
||||||
grouplist += groupname[u'email']+u' '
|
|
||||||
if grouplist[-1:] == u' ':
|
|
||||||
grouplist = grouplist[:-1]
|
|
||||||
user.update(Groups=grouplist)
|
|
||||||
user_count += 1
|
user_count += 1
|
||||||
if getLicenseFeed:
|
if getLicenseFeed:
|
||||||
titles.append(u'Licenses')
|
titles.append(u'Licenses')
|
||||||
@@ -10093,7 +10098,7 @@ def doPrintUsers():
|
|||||||
for user in csvRows:
|
for user in csvRows:
|
||||||
u_licenses = licenses.get(user[u'primaryEmail'].lower())
|
u_licenses = licenses.get(user[u'primaryEmail'].lower())
|
||||||
if u_licenses:
|
if u_licenses:
|
||||||
user[u'Licenses'] = u','.join([_skuIdToDisplayName(skuId) for skuId in u_licenses])
|
user[u'Licenses'] = licenseDelimiter.join([_skuIdToDisplayName(skuId) for skuId in u_licenses])
|
||||||
writeCSVfile(csvRows, titles, u'Users', todrive)
|
writeCSVfile(csvRows, titles, u'Users', todrive)
|
||||||
|
|
||||||
GROUP_ARGUMENT_TO_PROPERTY_TITLE_MAP = {
|
GROUP_ARGUMENT_TO_PROPERTY_TITLE_MAP = {
|
||||||
@@ -10188,6 +10193,9 @@ def doPrintGroups():
|
|||||||
for field in GROUP_ARGUMENT_TO_PROPERTY_TITLE_MAP:
|
for field in GROUP_ARGUMENT_TO_PROPERTY_TITLE_MAP:
|
||||||
addFieldTitleToCSVfile(field, GROUP_ARGUMENT_TO_PROPERTY_TITLE_MAP, cdfieldsList, fieldsTitles, titles)
|
addFieldTitleToCSVfile(field, GROUP_ARGUMENT_TO_PROPERTY_TITLE_MAP, cdfieldsList, fieldsTitles, titles)
|
||||||
i += 1
|
i += 1
|
||||||
|
elif myarg == u'sortheaders':
|
||||||
|
sortHeaders = True
|
||||||
|
i += 1
|
||||||
elif myarg == u'fields':
|
elif myarg == u'fields':
|
||||||
fieldNameList = sys.argv[i+1]
|
fieldNameList = sys.argv[i+1]
|
||||||
for field in fieldNameList.lower().replace(u',', u' ').split():
|
for field in fieldNameList.lower().replace(u',', u' ').split():
|
||||||
@@ -11331,6 +11339,8 @@ def doRequestOAuth(login_hint=None):
|
|||||||
http = httplib2.Http(disable_ssl_certificate_validation=GC_Values[GC_NO_VERIFY_SSL])
|
http = httplib2.Http(disable_ssl_certificate_validation=GC_Values[GC_NO_VERIFY_SSL])
|
||||||
flags = cmd_flags(noLocalWebserver=GC_Values[GC_NO_BROWSER])
|
flags = cmd_flags(noLocalWebserver=GC_Values[GC_NO_BROWSER])
|
||||||
scopes = getScopesFromUser()
|
scopes = getScopesFromUser()
|
||||||
|
if scopes is None:
|
||||||
|
return
|
||||||
client_id, client_secret = getOAuthClientIDAndSecret()
|
client_id, client_secret = getOAuthClientIDAndSecret()
|
||||||
login_hint = getValidateLoginHint(login_hint)
|
login_hint = getValidateLoginHint(login_hint)
|
||||||
flow = oauth2client.client.OAuth2WebServerFlow(client_id=client_id,
|
flow = oauth2client.client.OAuth2WebServerFlow(client_id=client_id,
|
||||||
@@ -11551,7 +11561,7 @@ def getScopesFromUser():
|
|||||||
for i in range(num_scopes):
|
for i in range(num_scopes):
|
||||||
selected_scopes[i] = u' '
|
selected_scopes[i] = u' '
|
||||||
elif selection == u'e':
|
elif selection == u'e':
|
||||||
return
|
return None
|
||||||
break
|
break
|
||||||
sys.stdout.write(u'{0}Invalid input "{1}"\n'.format(ERROR_PREFIX, choice))
|
sys.stdout.write(u'{0}Invalid input "{1}"\n'.format(ERROR_PREFIX, choice))
|
||||||
if selection == u'c':
|
if selection == u'c':
|
||||||
|
|||||||
Reference in New Issue
Block a user