mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-04 04:41:35 +00:00
fix whatis and nicer count for all users command
This commit is contained in:
27
gam.py
27
gam.py
@@ -24,7 +24,7 @@ For more information, see http://code.google.com/p/google-apps-manager
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = u'Jay Lee <jay0lee@gmail.com>'
|
__author__ = u'Jay Lee <jay0lee@gmail.com>'
|
||||||
__version__ = u'3.3'
|
__version__ = u'3.31'
|
||||||
__license__ = u'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
__license__ = u'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
import sys, os, time, datetime, random, socket, csv, platform, re, calendar, base64, hashlib
|
import sys, os, time, datetime, random, socket, csv, platform, re, calendar, base64, hashlib
|
||||||
@@ -426,6 +426,10 @@ def callGAPI(service, function, silent_errors=False, soft_errors=False, throw_re
|
|||||||
print u'Error: %s' % e
|
print u'Error: %s' % e
|
||||||
sys.exit(4)
|
sys.exit(4)
|
||||||
|
|
||||||
|
def restart_line():
|
||||||
|
sys.stderr.write('\r')
|
||||||
|
sys.stderr.flush()
|
||||||
|
|
||||||
def callGAPIpages(service, function, items=u'items', nextPageToken=u'nextPageToken', page_message=None, message_attribute=None, **kwargs):
|
def callGAPIpages(service, function, items=u'items', nextPageToken=u'nextPageToken', page_message=None, message_attribute=None, **kwargs):
|
||||||
pageToken = None
|
pageToken = None
|
||||||
all_pages = list()
|
all_pages = list()
|
||||||
@@ -456,6 +460,7 @@ def callGAPIpages(service, function, items=u'items', nextPageToken=u'nextPageTok
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
show_message = show_message.replace(u'%%first_item%%', '')
|
show_message = show_message.replace(u'%%first_item%%', '')
|
||||||
show_message = show_message.replace(u'%%last_item%%', '')
|
show_message = show_message.replace(u'%%last_item%%', '')
|
||||||
|
restart_line()
|
||||||
sys.stderr.write(show_message)
|
sys.stderr.write(show_message)
|
||||||
try:
|
try:
|
||||||
all_pages += this_page[items]
|
all_pages += this_page[items]
|
||||||
@@ -4261,7 +4266,7 @@ def doWhatIs():
|
|||||||
if email.find(u'@') == -1:
|
if email.find(u'@') == -1:
|
||||||
email = u'%s@%s' % (email, domain)
|
email = u'%s@%s' % (email, domain)
|
||||||
try:
|
try:
|
||||||
user_or_alias = callGAPI(service=cd.users(), function=u'get', throw_reasons=[u'badRequest', u'invalid'], userKey=email, fields=u'primaryEmail')
|
user_or_alias = callGAPI(service=cd.users(), function=u'get', throw_reasons=[u'notFound', u'badRequest', u'invalid'], userKey=email, fields=u'primaryEmail')
|
||||||
if user_or_alias[u'primaryEmail'].lower() == email.lower():
|
if user_or_alias[u'primaryEmail'].lower() == email.lower():
|
||||||
sys.stderr.write(u'%s is a user\n\n' % email)
|
sys.stderr.write(u'%s is a user\n\n' % email)
|
||||||
doGetUserInfo(user_email=email)
|
doGetUserInfo(user_email=email)
|
||||||
@@ -4274,10 +4279,10 @@ def doWhatIs():
|
|||||||
sys.stderr.write(u'%s is not a user...\n' % email)
|
sys.stderr.write(u'%s is not a user...\n' % email)
|
||||||
sys.stderr.write(u'%s is not a user alias...\n' % email)
|
sys.stderr.write(u'%s is not a user alias...\n' % email)
|
||||||
try:
|
try:
|
||||||
group = callGAPI(service=cd.groups(), function=u'get', throw_reasons=u'badRequest', groupKey=email, fields=u'email')
|
group = callGAPI(service=cd.groups(), function=u'get', throw_reasons=[u'notFound', u'badRequest'], groupKey=email, fields=u'email')
|
||||||
except apiclient.errors.HttpError:
|
except apiclient.errors.HttpError:
|
||||||
sys.stderr.write(u'%s is not a group either!\n\nDoesn\'t seem to exist!' % email)
|
sys.stderr.write(u'%s is not a group either!\n\nDoesn\'t seem to exist!\n\n' % email)
|
||||||
sys.exit(0)
|
sys.exit(1)
|
||||||
if group[u'email'].lower() == email.lower():
|
if group[u'email'].lower() == email.lower():
|
||||||
sys.stderr.write(u'%s is a group\n\n' % email)
|
sys.stderr.write(u'%s is a group\n\n' % email)
|
||||||
doGetGroupInfo(group_name=email)
|
doGetGroupInfo(group_name=email)
|
||||||
@@ -6438,7 +6443,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, return_uids=Fa
|
|||||||
page_message = None
|
page_message = None
|
||||||
if not silent:
|
if not silent:
|
||||||
sys.stderr.write(u"Getting %s of %s (may take some time for large groups)..." % (member_type_message, group))
|
sys.stderr.write(u"Getting %s of %s (may take some time for large groups)..." % (member_type_message, group))
|
||||||
page_message = u'Got %%%%num_items%%%% %s...\n' % member_type_message
|
page_message = u'Got %%%%total_items%%%% %s...' % member_type_message
|
||||||
members = callGAPIpages(service=cd.members(), function=u'list', page_message=page_message, groupKey=group, roles=member_type, fields=u'nextPageToken,members(email,id)')
|
members = callGAPIpages(service=cd.members(), function=u'list', page_message=page_message, groupKey=group, roles=member_type, fields=u'nextPageToken,members(email,id)')
|
||||||
users = []
|
users = []
|
||||||
for member in members:
|
for member in members:
|
||||||
@@ -6455,7 +6460,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, return_uids=Fa
|
|||||||
page_message = None
|
page_message = None
|
||||||
if not silent:
|
if not silent:
|
||||||
sys.stderr.write(u"Getting all users in the Google Apps organization (may take some time on a large domain)...\n")
|
sys.stderr.write(u"Getting all users in the Google Apps organization (may take some time on a large domain)...\n")
|
||||||
page_message = u'Got %%num_items%% users.\n'
|
page_message = u'Got %%total_items%% users...'
|
||||||
members = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,id,orgUnitPath)', query=u"orgUnitPath='%s'" % ou, maxResults=500)
|
members = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,id,orgUnitPath)', query=u"orgUnitPath='%s'" % ou, maxResults=500)
|
||||||
for member in members:
|
for member in members:
|
||||||
if ou.lower() != member[u'orgUnitPath'].lower():
|
if ou.lower() != member[u'orgUnitPath'].lower():
|
||||||
@@ -6474,7 +6479,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, return_uids=Fa
|
|||||||
page_message = None
|
page_message = None
|
||||||
if not silent:
|
if not silent:
|
||||||
sys.stderr.write(u"Getting all users in the Google Apps organization (may take some time on a large domain)...\n")
|
sys.stderr.write(u"Getting all users in the Google Apps organization (may take some time on a large domain)...\n")
|
||||||
page_message = u'Got %%num_items%% users\n'
|
page_message = u'Got %%total_items%% users..'
|
||||||
members = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,id)', query=u"orgUnitPath='%s'" % ou, maxResults=500)
|
members = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,id)', query=u"orgUnitPath='%s'" % ou, maxResults=500)
|
||||||
for member in members:
|
for member in members:
|
||||||
if return_uids:
|
if return_uids:
|
||||||
@@ -6486,7 +6491,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, return_uids=Fa
|
|||||||
got_uids = True
|
got_uids = True
|
||||||
users = []
|
users = []
|
||||||
if not silent: sys.stderr.write(u"Getting all users that match query %s (may take some time on a large domain)...\n" % entity)
|
if not silent: sys.stderr.write(u"Getting all users that match query %s (may take some time on a large domain)...\n" % entity)
|
||||||
page_message = u'Got %%num_items%% users\n'
|
page_message = u'Got %%total_items%% users...'
|
||||||
members = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,id)', query=entity, maxResults=500)
|
members = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,id)', query=entity, maxResults=500)
|
||||||
for member in members:
|
for member in members:
|
||||||
if return_uids:
|
if return_uids:
|
||||||
@@ -6507,8 +6512,8 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, return_uids=Fa
|
|||||||
got_uids = True
|
got_uids = True
|
||||||
users = []
|
users = []
|
||||||
if entity == u'users':
|
if entity == u'users':
|
||||||
if not silent: sys.stderr.write(u"Getting all users in Google Apps account (may take some time on a large account)...")
|
if not silent: sys.stderr.write(u"Getting all users in Google Apps account (may take some time on a large account)...\n")
|
||||||
page_message = u'Got %%num_items%% users\n'
|
page_message = u'Got %%total_items%% users...'
|
||||||
all_users = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,suspended,id)', maxResults=500)
|
all_users = callGAPIpages(service=cd.users(), function=u'list', items=u'users', page_message=page_message, customer=customerId, fields=u'nextPageToken,users(primaryEmail,suspended,id)', maxResults=500)
|
||||||
for member in all_users:
|
for member in all_users:
|
||||||
if member[u'suspended'] == False:
|
if member[u'suspended'] == False:
|
||||||
|
|||||||
Reference in New Issue
Block a user