mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 12:21:35 +00:00
Add limittoou <OrgUnitPath> to print users to allow selection of OU w/o children (#1455)
This commit is contained in:
@@ -207,8 +207,9 @@ If an item contains spaces, it should be surrounded by ".
|
|||||||
<Namespace> ::= <String>
|
<Namespace> ::= <String>
|
||||||
<NotificationID> ::= <String>
|
<NotificationID> ::= <String>
|
||||||
<NumberOfSeats> ::= <Number>
|
<NumberOfSeats> ::= <Number>
|
||||||
<OrgUnitID> ::= <String>
|
<OrgUnitID> ::= id:<String>
|
||||||
<OrgUnitPath> ::= /|(/<String)+
|
<OrgUnitPath> ::= /|(/<String)+
|
||||||
|
<OrgUnitItem> ::= <OrgUnitID>|<OrgUnitPath>
|
||||||
<ParameterKey> ::= <String>
|
<ParameterKey> ::= <String>
|
||||||
<ParameterValue> ::= <String>
|
<ParameterValue> ::= <String>
|
||||||
<Password> ::= <String>
|
<Password> ::= <String>
|
||||||
@@ -1477,7 +1478,8 @@ The first column will always be primaryEmail; the remaining field names will be
|
|||||||
otherwise, the remaining field names will appear in the order specified.
|
otherwise, the remaining field names will appear in the order specified.
|
||||||
|
|
||||||
gam print users [todrive]
|
gam print users [todrive]
|
||||||
([domain <DomainName>] [(query <QueryUser>)|(queries <QueryUserList>)] [deleted_only|only_deleted])
|
([domain <DomainName>] [(query <QueryUser>)|(queries <QueryUserList>)]
|
||||||
|
[limittoou <OrgUnitPath>] [deleted_only|only_deleted])
|
||||||
[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>])]
|
||||||
|
|||||||
@@ -9661,6 +9661,7 @@ 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
|
||||||
|
orgUnitPath = orgUnitPathLower = None
|
||||||
groupDelimiter = ' '
|
groupDelimiter = ' '
|
||||||
licenseDelimiter = ','
|
licenseDelimiter = ','
|
||||||
i = 3
|
i = 3
|
||||||
@@ -9725,6 +9726,10 @@ def doPrintUsers():
|
|||||||
elif myarg in ['query', 'queries']:
|
elif myarg in ['query', 'queries']:
|
||||||
queries = getQueries(myarg, sys.argv[i + 1])
|
queries = getQueries(myarg, sys.argv[i + 1])
|
||||||
i += 2
|
i += 2
|
||||||
|
elif myarg == 'limittoou':
|
||||||
|
orgUnitPath = gapi_directory_orgunits.getOrgUnitItem(sys.argv[i + 1], pathOnly=True)
|
||||||
|
orgUnitPathLower = orgUnitPath.lower()
|
||||||
|
i += 2
|
||||||
elif myarg in USER_ARGUMENT_TO_PROPERTY_MAP:
|
elif myarg in USER_ARGUMENT_TO_PROPERTY_MAP:
|
||||||
if not fieldsList:
|
if not fieldsList:
|
||||||
fieldsList = [
|
fieldsList = [
|
||||||
@@ -9760,10 +9765,21 @@ def doPrintUsers():
|
|||||||
else:
|
else:
|
||||||
controlflow.invalid_argument_exit(sys.argv[i], 'gam print users')
|
controlflow.invalid_argument_exit(sys.argv[i], 'gam print users')
|
||||||
if fieldsList:
|
if fieldsList:
|
||||||
|
if orgUnitPath is not None:
|
||||||
|
fieldsList.append('orgUnitPath')
|
||||||
fields = f'nextPageToken,users({",".join(set(fieldsList)).replace(".", "/")})'
|
fields = f'nextPageToken,users({",".join(set(fieldsList)).replace(".", "/")})'
|
||||||
else:
|
else:
|
||||||
fields = None
|
fields = None
|
||||||
for query in queries:
|
for query in queries:
|
||||||
|
if orgUnitPath is not None:
|
||||||
|
if query is not None and query.find(orgUnitPath) == -1:
|
||||||
|
query += f" orgUnitPath='{orgUnitPath}'"
|
||||||
|
else:
|
||||||
|
if query is None:
|
||||||
|
query = ''
|
||||||
|
else:
|
||||||
|
query += ' '
|
||||||
|
query += f"orgUnitPath='{orgUnitPath}'"
|
||||||
printGettingAllItems('Users', query)
|
printGettingAllItems('Users', query)
|
||||||
page_message = gapi.got_total_items_first_last_msg('Users')
|
page_message = gapi.got_total_items_first_last_msg('Users')
|
||||||
all_users = gapi.get_all_pages(cd.users(),
|
all_users = gapi.get_all_pages(cd.users(),
|
||||||
@@ -9782,6 +9798,7 @@ def doPrintUsers():
|
|||||||
projection=projection,
|
projection=projection,
|
||||||
customFieldMask=customFieldMask)
|
customFieldMask=customFieldMask)
|
||||||
for user in all_users:
|
for user in all_users:
|
||||||
|
if orgUnitPathLower is None or orgUnitPathLower == user.get('orgUnitPath', '').lower():
|
||||||
if email_parts and ('primaryEmail' in user):
|
if email_parts and ('primaryEmail' in user):
|
||||||
user_email = user['primaryEmail']
|
user_email = user['primaryEmail']
|
||||||
if user_email.find('@') != -1:
|
if user_email.find('@') != -1:
|
||||||
|
|||||||
Reference in New Issue
Block a user