I've written a script that to check who has visibility of the groups' archives and, if this is more lenient than "only members of the group" to reduce it to this. My script uses GAMADV-X and:
- gets a list of all the Google Groups in our domain which have who_can_view_group set to something more generous than Members only — ie, to "all in domain" or "everyone on the Internet"
- prepares a batch file to feed back into GAMADV-X to set who_can_view_group down to all_members_can_view
I check the batch file over and then feed it to gam using its batch command.The entries in the batch file are all of the form
gam update group nameofgroup@york.ac.uk who_can_view_group all_members_can_view
This happily updates the settings for nearly every group in our domain. However there are an obstinate few — 8 out of ~2000 — that it keeps failing to update. For these the batch command produces output such as:
Temporary error: invalid - Can't set messageModerationLevel as MODERATE_NON_MEMBERS when non-members can't post., Backing off: 16 seconds, Retry: 4/10
Temporary error: invalid - Can't set messageModerationLevel as MODERATE_NON_MEMBERS when non-members can't post., Backing off: 32 seconds, Retry: 5/10
…
Temporary error: invalid - Can't set messageModerationLevel as MODERATE_NON_MEMBERS when non-members can't post., Backing off: 60 seconds, Retry: 9/10
ERROR: 400: invalid - Can't set messageModerationLevel as MODERATE_NON_MEMBERS when non-members can't post.: Giving up.
Group: nameofgroup@york.ac.uk, Updated: API error, some settings not set
But I'm not trying to set messageModerationLevel. (Yes, I've checked the batch file umpteen times, and I'm really not!)