mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-06 20:53:35 +00:00
Use writeStdout so redirect stdout catches data; update documentation
This commit is contained in:
@ -5135,7 +5135,7 @@ gam download storagefile <StorageBucketObjectName>
|
|||||||
<UserClearAttribute>
|
<UserClearAttribute>
|
||||||
|
|
||||||
gam create|add user <EmailAddress> [ignorenullpassword] <UserAttribute>*
|
gam create|add user <EmailAddress> [ignorenullpassword] <UserAttribute>*
|
||||||
[verifynotinvitable]
|
[verifynotinvitable|alwaysevict]
|
||||||
(groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
|
(groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
|
||||||
[alias|aliases <EmailAddressList>]
|
[alias|aliases <EmailAddressList>]
|
||||||
[license <SKUIDList> [product|productid <ProductID>]]
|
[license <SKUIDList> [product|productid <ProductID>]]
|
||||||
@ -5152,7 +5152,7 @@ gam create|add user <EmailAddress> [ignorenullpassword] <UserAttribute>*
|
|||||||
gam <UserTypeEntity> waitformailbox [retries <Number>]
|
gam <UserTypeEntity> waitformailbox [retries <Number>]
|
||||||
|
|
||||||
gam update user <UserItem> [ignorenullpassword] <UserAttribute>*
|
gam update user <UserItem> [ignorenullpassword] <UserAttribute>*
|
||||||
[verifynotinvitable] [noactionifalias]
|
[verifynotinvitable|alwaysevict] [noactionifalias]
|
||||||
[updateprimaryemail <RegularExpression> <EmailReplacement>]
|
[updateprimaryemail <RegularExpression> <EmailReplacement>]
|
||||||
[updateoufromgroup <FileName> [charset <CharSet>]
|
[updateoufromgroup <FileName> [charset <CharSet>]
|
||||||
[columndelimiter <Character>] [quotechar <Character>]
|
[columndelimiter <Character>] [quotechar <Character>]
|
||||||
|
@ -2,6 +2,18 @@
|
|||||||
|
|
||||||
Merged GAM-Team version
|
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
|
6.63.00
|
||||||
|
|
||||||
Added support for calendar working location events.
|
Added support for calendar working location events.
|
||||||
|
@ -12222,7 +12222,7 @@ def doCreateGCPServiceAccount():
|
|||||||
systemErrorExit(API_ACCESS_DENIED_RC, str(e))
|
systemErrorExit(API_ACCESS_DENIED_RC, str(e))
|
||||||
sa_info['client_id'] = token_info['issued_to']
|
sa_info['client_id'] = token_info['issued_to']
|
||||||
sa_output = json.dumps(sa_info, ensure_ascii=False, sort_keys=True, indent=2)
|
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)
|
writeFile(GC.Values[GC.OAUTH2SERVICE_JSON], sa_output, continueOnError=False)
|
||||||
|
|
||||||
# Audit command utilities
|
# Audit command utilities
|
||||||
@ -40366,6 +40366,7 @@ def createUserAddAliases(cd, user, aliasList, i, count):
|
|||||||
Act.Set(action)
|
Act.Set(action)
|
||||||
|
|
||||||
# gam create user <EmailAddress> <UserAttribute>
|
# gam create user <EmailAddress> <UserAttribute>
|
||||||
|
# [verifynotinvitable|alwaysevict]
|
||||||
# (groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
|
# (groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
|
||||||
# [alias|aliases <EmailAddressList>]
|
# [alias|aliases <EmailAddressList>]
|
||||||
# [license <SKUID> [product|productid <ProductID>]]
|
# [license <SKUID> [product|productid <ProductID>]]
|
||||||
@ -40463,7 +40464,8 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
|
|||||||
entityUnknownWarning(Ent.USER, user, i, count)
|
entityUnknownWarning(Ent.USER, user, i, count)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# gam <UserTypeEntity> update user <UserAttribute>* [noactionifalias]
|
# gam <UserTypeEntity> update user <UserAttribute>*
|
||||||
|
# [verifynotinvitable|alwaysevict] [noactionifalias]
|
||||||
# [updateprimaryemail <RegularExpression> <EmailReplacement>]
|
# [updateprimaryemail <RegularExpression> <EmailReplacement>]
|
||||||
# [updateoufromgroup <CSVFileInput> [keyfield <FieldName>] [datafield <FieldName>]]
|
# [updateoufromgroup <CSVFileInput> [keyfield <FieldName>] [datafield <FieldName>]]
|
||||||
# [immutableous <OrgUnitEntity>]|
|
# [immutableous <OrgUnitEntity>]|
|
||||||
@ -40480,7 +40482,6 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
|
|||||||
# (replace <Tag> <UserReplacement>)*]
|
# (replace <Tag> <UserReplacement>)*]
|
||||||
# [notifyonupdate [<Boolean>]]
|
# [notifyonupdate [<Boolean>]]
|
||||||
# [lograndompassword <FileName>] [ignorenullpassword]
|
# [lograndompassword <FileName>] [ignorenullpassword]
|
||||||
# [verifynotinvitable]
|
|
||||||
def updateUsers(entityList):
|
def updateUsers(entityList):
|
||||||
cd = buildGAPIObject(API.DIRECTORY)
|
cd = buildGAPIObject(API.DIRECTORY)
|
||||||
ci = None
|
ci = None
|
||||||
|
Reference in New Issue
Block a user