Use writeStdout so redirect stdout catches data; update documentation

This commit is contained in:
Ross Scroggs
2023-08-18 11:37:55 -07:00
parent 7573013da4
commit 1243ece157
3 changed files with 18 additions and 5 deletions

View File

@ -5135,7 +5135,7 @@ gam download storagefile <StorageBucketObjectName>
<UserClearAttribute>
gam create|add user <EmailAddress> [ignorenullpassword] <UserAttribute>*
[verifynotinvitable]
[verifynotinvitable|alwaysevict]
(groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
[alias|aliases <EmailAddressList>]
[license <SKUIDList> [product|productid <ProductID>]]
@ -5152,7 +5152,7 @@ gam create|add user <EmailAddress> [ignorenullpassword] <UserAttribute>*
gam <UserTypeEntity> waitformailbox [retries <Number>]
gam update user <UserItem> [ignorenullpassword] <UserAttribute>*
[verifynotinvitable] [noactionifalias]
[verifynotinvitable|alwaysevict] [noactionifalias]
[updateprimaryemail <RegularExpression> <EmailReplacement>]
[updateoufromgroup <FileName> [charset <CharSet>]
[columndelimiter <Character>] [quotechar <Character>]

View File

@ -2,6 +2,18 @@
Merged GAM-Team version
6.63.01
Following Jay's lead, added option `alwaysevict` to `gam create|update user` that is used to specify GAM's
behavior when `verifynotinvitable` is not specified and there is a conflict with an unmanaged account.
By default, when creating a user that has a conflict with an unmanaged account, GAM will honor the setting on this page:
* https://admin.google.com/ac/accountsettings/conflictaccountmanagement
Specifying `alwaysevict` forces GAM to select this setting: `Replace conflicting unmanaged accounts with managed ones`
With `gam update user`, `alwaysevict` only applies if `createifnotfound` is specified and the user was not found to update and must be created.
6.63.00
Added support for calendar working location events.

View File

@ -12222,7 +12222,7 @@ def doCreateGCPServiceAccount():
systemErrorExit(API_ACCESS_DENIED_RC, str(e))
sa_info['client_id'] = token_info['issued_to']
sa_output = json.dumps(sa_info, ensure_ascii=False, sort_keys=True, indent=2)
print(f'Writing SignJWT service account data:\n\n{sa_output}')
writeStdout(f'Writing SignJWT service account data:\n\n{sa_output}\n')
writeFile(GC.Values[GC.OAUTH2SERVICE_JSON], sa_output, continueOnError=False)
# Audit command utilities
@ -40366,6 +40366,7 @@ def createUserAddAliases(cd, user, aliasList, i, count):
Act.Set(action)
# gam create user <EmailAddress> <UserAttribute>
# [verifynotinvitable|alwaysevict]
# (groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
# [alias|aliases <EmailAddressList>]
# [license <SKUID> [product|productid <ProductID>]]
@ -40463,7 +40464,8 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
entityUnknownWarning(Ent.USER, user, i, count)
return False
# gam <UserTypeEntity> update user <UserAttribute>* [noactionifalias]
# gam <UserTypeEntity> update user <UserAttribute>*
# [verifynotinvitable|alwaysevict] [noactionifalias]
# [updateprimaryemail <RegularExpression> <EmailReplacement>]
# [updateoufromgroup <CSVFileInput> [keyfield <FieldName>] [datafield <FieldName>]]
# [immutableous <OrgUnitEntity>]|
@ -40480,7 +40482,6 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
# (replace <Tag> <UserReplacement>)*]
# [notifyonupdate [<Boolean>]]
# [lograndompassword <FileName>] [ignorenullpassword]
# [verifynotinvitable]
def updateUsers(entityList):
cd = buildGAPIObject(API.DIRECTORY)
ci = None