gam7 7.23.4__tar.gz → 7.23.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gam7 might be problematic. Click here for more details.
- {gam7-7.23.4 → gam7-7.23.5}/.github/workflows/build.yml +5 -4
- {gam7-7.23.4 → gam7-7.23.5}/.github/workflows/pypi.yml +1 -1
- {gam7-7.23.4 → gam7-7.23.5}/PKG-INFO +1 -1
- {gam7-7.23.4 → gam7-7.23.5}/src/GamCommands.txt +4 -3
- {gam7-7.23.4 → gam7-7.23.5}/src/GamUpdate.txt +5 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/__init__.py +69 -28
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Calendars-Events.md +7 -3
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GamUpdates.md +12 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1 -1
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Calendars-Events.md +6 -3
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-People-Contacts-Profiles.md +8 -8
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Tasks.md +3 -3
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Version-and-Help.md +3 -3
- {gam7-7.23.4 → gam7-7.23.5}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/actions/decrypt.sh +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/actions/entitlements.plist +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/stale.yml +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/LICENSE +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/README.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/pyproject.toml +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/.gitignore +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/LICENSE +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/README.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/callgam.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/__main__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/auth.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/client.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/core.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/data.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/http.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/http_core.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/service.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/token_store.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/atom/url.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/cacerts.pem +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/service.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam-install.sh +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam-setup.bat +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam.exe.manifest +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam.spec +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/gam.wxs +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/license.rtf +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/mkGamRef.py +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/openssl.props +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/tools/ssd.mjs +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/src/version_info.txt.in +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/00scratch.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Addresses.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Administrators.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Alert-Center.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Aliases.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Authorization.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Basic-Items.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Calendars-Access.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Calendars.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Customer.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Domains-Verification.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Domains.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Drive-Items.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Global-Address-List.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Groups-Membership.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Groups.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Home.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Licenses.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/List-Items.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/List.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Organizational-Units.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Other-Resources.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Permission-Matches.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/README.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Rclone.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Reports.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Reseller.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Resources.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Schemas.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Scripts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Send-Email.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Shared-Drives.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Sites.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Tag-Replace.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Todrive.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Calendars.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Chat.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Contacts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Forms.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Meet.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Photo.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Tokens.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users-YouTube.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Users.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/_Sidebar.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/gam.cfg.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.23.4 → gam7-7.23.5}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -158,7 +158,7 @@ jobs:
|
|
|
158
158
|
with:
|
|
159
159
|
path: |
|
|
160
160
|
cache.tar.xz
|
|
161
|
-
key: gam-${{ matrix.jid }}-
|
|
161
|
+
key: gam-${{ matrix.jid }}-20251002
|
|
162
162
|
|
|
163
163
|
- name: Untar Cache archive
|
|
164
164
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true'
|
|
@@ -168,7 +168,7 @@ jobs:
|
|
|
168
168
|
|
|
169
169
|
- name: Use pre-compiled Python for testing
|
|
170
170
|
if: matrix.python != ''
|
|
171
|
-
uses: actions/setup-python@
|
|
171
|
+
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
|
172
172
|
with:
|
|
173
173
|
python-version: ${{ matrix.python }}
|
|
174
174
|
allow-prereleases: true
|
|
@@ -1027,7 +1027,8 @@ jobs:
|
|
|
1027
1027
|
else
|
|
1028
1028
|
tar_folders="bin/"
|
|
1029
1029
|
fi
|
|
1030
|
-
|
|
1030
|
+
echo '.git*' > ./excludes.txt
|
|
1031
|
+
tar cJvvf cache.tar.xz --exclude-from=excludes.txt $tar_folders
|
|
1031
1032
|
|
|
1032
1033
|
merge:
|
|
1033
1034
|
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
|
|
@@ -1077,7 +1078,7 @@ jobs:
|
|
|
1077
1078
|
echo "dateversion=${dateversion}" >> $GITHUB_OUTPUT
|
|
1078
1079
|
|
|
1079
1080
|
- name: Publish draft release
|
|
1080
|
-
uses: softprops/action-gh-release@
|
|
1081
|
+
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
|
|
1081
1082
|
with:
|
|
1082
1083
|
draft: true
|
|
1083
1084
|
prerelease: false
|
|
@@ -1552,10 +1552,11 @@ gam create|add admin <EmailAddress>|<UniqueID> <RoleItem> customer|(org_unit <Or
|
|
|
1552
1552
|
gam delete admin <RoleAssignmentId>
|
|
1553
1553
|
|
|
1554
1554
|
gam print admins [todrive <ToDriveAttribute>*]
|
|
1555
|
-
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1556
|
-
[privileges] [oneitemperrow]
|
|
1555
|
+
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1556
|
+
[recursive] [condition] [privileges] [oneitemperrow]
|
|
1557
1557
|
gam show admins
|
|
1558
|
-
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1558
|
+
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1559
|
+
[recursive] [condition] [privileges]
|
|
1559
1560
|
|
|
1560
1561
|
# Alert Center
|
|
1561
1562
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
7.23.05
|
|
2
|
+
|
|
3
|
+
Added option `recursive` to `gam print|show admins` that will display assignments to the members
|
|
4
|
+
of security groups assigned to roles; the security group membershop is recursively expanded.
|
|
5
|
+
|
|
1
6
|
7.23.04
|
|
2
7
|
|
|
3
8
|
Added option `addcsvdata <FieldName> <String>` to `gam <UserTypeEntity> print events`
|
|
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
|
28
|
-
__version__ = '7.23.
|
|
28
|
+
__version__ = '7.23.05'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -16995,16 +16995,17 @@ ASSIGNEE_EMAILTYPE_TOFIELD_MAP = {
|
|
|
16995
16995
|
'group': 'assignedToGroup',
|
|
16996
16996
|
'serviceaccount': 'assignedToServiceAccount',
|
|
16997
16997
|
}
|
|
16998
|
-
PRINT_ADMIN_FIELDS = ['roleAssignmentId', 'roleId', 'assignedTo', 'scopeType', 'orgUnitId']
|
|
16998
|
+
PRINT_ADMIN_FIELDS = ['roleAssignmentId', 'roleId', 'assignedTo', 'scopeType', 'orgUnitId', 'assigneeType']
|
|
16999
16999
|
PRINT_ADMIN_TITLES = ['roleAssignmentId', 'roleId', 'role',
|
|
17000
17000
|
'assignedTo', 'assignedToUser', 'assignedToGroup', 'assignedToServiceAccount', 'assignedToUnknown',
|
|
17001
17001
|
'scopeType', 'orgUnitId', 'orgUnit']
|
|
17002
17002
|
|
|
17003
17003
|
# gam print admins [todrive <ToDriveAttribute>*]
|
|
17004
|
-
# [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
17005
|
-
# [privileges] [oneitemperrow]
|
|
17004
|
+
# [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
17005
|
+
# [recursive] [condition] [privileges] [oneitemperrow]
|
|
17006
17006
|
# gam show admins
|
|
17007
|
-
# [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
17007
|
+
# [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
17008
|
+
# [recursive] [condition] [privileges]
|
|
17008
17009
|
def doPrintShowAdmins():
|
|
17009
17010
|
def _getPrivileges(admin):
|
|
17010
17011
|
if showPrivileges:
|
|
@@ -17031,15 +17032,12 @@ def doPrintShowAdmins():
|
|
|
17031
17032
|
def _setNamesFromIds(admin, privileges):
|
|
17032
17033
|
admin['role'] = role_from_roleid(admin['roleId'])
|
|
17033
17034
|
assignedTo = admin['assignedTo']
|
|
17034
|
-
admin['assignedToUnknown'] = False
|
|
17035
17035
|
if assignedTo not in assignedToIdEmailMap:
|
|
17036
|
-
assigneeType = admin.get('assigneeType')
|
|
17037
|
-
assignedToField = ASSIGNEE_EMAILTYPE_TOFIELD_MAP.get(assigneeType, None)
|
|
17038
17036
|
assigneeEmail, assigneeType = convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal,
|
|
17039
|
-
emailTypes=
|
|
17040
|
-
if
|
|
17037
|
+
emailTypes=allAssigneeTypes if admin.get('assigneeType') != 'group' else ['group'])
|
|
17038
|
+
if assigneeType in ASSIGNEE_EMAILTYPE_TOFIELD_MAP:
|
|
17041
17039
|
assignedToField = ASSIGNEE_EMAILTYPE_TOFIELD_MAP[assigneeType]
|
|
17042
|
-
|
|
17040
|
+
else:
|
|
17043
17041
|
assignedToField = 'assignedToUnknown'
|
|
17044
17042
|
assigneeEmail = True
|
|
17045
17043
|
assignedToIdEmailMap[assignedTo] = {'assignedToField': assignedToField, 'assigneeEmail': assigneeEmail}
|
|
@@ -17059,11 +17057,12 @@ def doPrintShowAdmins():
|
|
|
17059
17057
|
csvPF = CSVPrintFile(PRINT_ADMIN_TITLES) if Act.csvFormat() else None
|
|
17060
17058
|
roleId = None
|
|
17061
17059
|
userKey = None
|
|
17062
|
-
oneItemPerRow = showPrivileges = False
|
|
17060
|
+
oneItemPerRow = recursive = showPrivileges = False
|
|
17063
17061
|
kwargs = {}
|
|
17064
17062
|
rolePrivileges = {}
|
|
17065
17063
|
fieldsList = PRINT_ADMIN_FIELDS
|
|
17066
17064
|
assignedToIdEmailMap = {}
|
|
17065
|
+
allAssigneeTypes = list(ASSIGNEE_EMAILTYPE_TOFIELD_MAP.keys())
|
|
17067
17066
|
while Cmd.ArgumentsRemaining():
|
|
17068
17067
|
myarg = getArgument()
|
|
17069
17068
|
if csvPF and myarg == 'todrive':
|
|
@@ -17072,6 +17071,15 @@ def doPrintShowAdmins():
|
|
|
17072
17071
|
userKey = kwargs['userKey'] = getEmailAddress()
|
|
17073
17072
|
elif myarg == 'role':
|
|
17074
17073
|
_, roleId = getRoleId()
|
|
17074
|
+
elif myarg == 'recursive':
|
|
17075
|
+
recursive = True
|
|
17076
|
+
allGroupRoles = ','.join(sorted(ALL_GROUP_ROLES))
|
|
17077
|
+
memberOptions = initMemberOptions()
|
|
17078
|
+
memberOptions[MEMBEROPTION_INCLUDEDERIVEDMEMBERSHIP] = True
|
|
17079
|
+
memberOptions[MEMBEROPTION_DISPLAYMATCH] = False
|
|
17080
|
+
memberDisplayOptions = initIPSGMGroupMemberDisplayOptions()
|
|
17081
|
+
for role in [Ent.ROLE_MEMBER, Ent.ROLE_MANAGER, Ent.ROLE_OWNER]:
|
|
17082
|
+
memberDisplayOptions[role]['show'] = True
|
|
17075
17083
|
elif myarg == 'condition':
|
|
17076
17084
|
fieldsList.append('condition')
|
|
17077
17085
|
if csvPF:
|
|
@@ -17091,7 +17099,7 @@ def doPrintShowAdmins():
|
|
|
17091
17099
|
admins = callGAPIpages(cd.roleAssignments(), 'list', 'items',
|
|
17092
17100
|
pageMessage=getPageMessage(),
|
|
17093
17101
|
throwReasons=[GAPI.INVALID, GAPI.USER_NOT_FOUND,
|
|
17094
|
-
GAPI.FORBIDDEN, GAPI.SERVICE_NOT_AVAILABLE,
|
|
17102
|
+
GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.SERVICE_NOT_AVAILABLE,
|
|
17095
17103
|
GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND,
|
|
17096
17104
|
GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED],
|
|
17097
17105
|
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
@@ -17099,39 +17107,72 @@ def doPrintShowAdmins():
|
|
|
17099
17107
|
except (GAPI.invalid, GAPI.userNotFound):
|
|
17100
17108
|
entityUnknownWarning(Ent.ADMINISTRATOR, userKey)
|
|
17101
17109
|
return
|
|
17102
|
-
except
|
|
17103
|
-
entityActionFailedExit([Ent.
|
|
17110
|
+
except GAPI.notFound as e:
|
|
17111
|
+
entityActionFailedExit([Ent.ADMIN_ROLE, kwargs['roleId']], str(e))
|
|
17112
|
+
except (GAPI.forbidden, GAPI.serviceNotAvailable) as e:
|
|
17113
|
+
entityActionFailedExit([Ent.ADMINISTRATOR, userKey], str(e))
|
|
17104
17114
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
|
17105
17115
|
accessErrorExit(cd)
|
|
17106
17116
|
except (GAPI.forbidden, GAPI.permissionDenied) as e:
|
|
17107
17117
|
ClientAPIAccessDeniedExit(str(e))
|
|
17118
|
+
count = len(admins)
|
|
17119
|
+
groupMembers = {}
|
|
17120
|
+
expandedAdmins = []
|
|
17121
|
+
i = 0
|
|
17122
|
+
for admin in admins:
|
|
17123
|
+
i += 1
|
|
17124
|
+
if roleId and roleId != admin['roleId']:
|
|
17125
|
+
continue
|
|
17126
|
+
if admin['assigneeType'] != 'group' or not recursive:
|
|
17127
|
+
_setNamesFromIds(admin, _getPrivileges(admin))
|
|
17128
|
+
expandedAdmins.append(admin)
|
|
17129
|
+
continue
|
|
17130
|
+
assignedTo = admin['assignedTo']
|
|
17131
|
+
if assignedTo not in groupMembers:
|
|
17132
|
+
membersList = []
|
|
17133
|
+
membersSet = set()
|
|
17134
|
+
level = 0
|
|
17135
|
+
getGroupMembers(cd, assignedTo, allGroupRoles, membersList, membersSet, i, count,
|
|
17136
|
+
memberOptions, memberDisplayOptions, level, {Ent.TYPE_USER})
|
|
17137
|
+
groupMembers[assignedTo] = membersList[:]
|
|
17138
|
+
_setNamesFromIds(admin, _getPrivileges(admin))
|
|
17139
|
+
if not groupMembers[assignedTo]:
|
|
17140
|
+
expandedAdmins.append(admin)
|
|
17141
|
+
continue
|
|
17142
|
+
admin['assigneeType'] = 'user'
|
|
17143
|
+
admin['assignedToGroup'] = assignedToIdEmailMap[assignedTo]['assigneeEmail']
|
|
17144
|
+
for member in groupMembers[assignedTo]:
|
|
17145
|
+
userAdmin = admin.copy()
|
|
17146
|
+
userAdmin['assignedTo'] = member['id']
|
|
17147
|
+
_setNamesFromIds(userAdmin, _getPrivileges(admin))
|
|
17148
|
+
expandedAdmins.append(userAdmin)
|
|
17149
|
+
admins = expandedAdmins
|
|
17150
|
+
count = len(expandedAdmins)
|
|
17108
17151
|
if not csvPF:
|
|
17109
|
-
count = len(admins)
|
|
17110
17152
|
performActionNumItems(count, Ent.ADMIN_ROLE_ASSIGNMENT)
|
|
17111
17153
|
Ind.Increment()
|
|
17112
17154
|
i = 0
|
|
17113
|
-
for admin in
|
|
17155
|
+
for admin in expandedAdmins:
|
|
17114
17156
|
i += 1
|
|
17115
|
-
if roleId and roleId != admin['roleId']:
|
|
17116
|
-
continue
|
|
17117
|
-
_setNamesFromIds(admin, _getPrivileges(admin))
|
|
17118
17157
|
printEntity([Ent.ADMIN_ROLE_ASSIGNMENT, admin['roleAssignmentId']], i, count)
|
|
17119
17158
|
Ind.Increment()
|
|
17120
17159
|
for field in PRINT_ADMIN_TITLES:
|
|
17121
17160
|
if field in admin:
|
|
17122
17161
|
if field == 'roleAssignmentId':
|
|
17123
17162
|
continue
|
|
17124
|
-
|
|
17125
|
-
|
|
17126
|
-
|
|
17127
|
-
|
|
17163
|
+
printKeyValueList([field, admin[field]])
|
|
17164
|
+
if showPrivileges:
|
|
17165
|
+
rolePrivileges = admin.get('rolePrivileges', [])
|
|
17166
|
+
jcount = len(rolePrivileges)
|
|
17167
|
+
if jcount > 0:
|
|
17168
|
+
printKeyValueList(['rolePrivileges', jcount])
|
|
17169
|
+
Ind.Increment()
|
|
17170
|
+
showJSON(None, rolePrivileges)
|
|
17171
|
+
Ind.Decrement()
|
|
17128
17172
|
Ind.Decrement()
|
|
17129
17173
|
Ind.Decrement()
|
|
17130
17174
|
else:
|
|
17131
|
-
for admin in
|
|
17132
|
-
if roleId and roleId != admin['roleId']:
|
|
17133
|
-
continue
|
|
17134
|
-
_setNamesFromIds(admin, _getPrivileges(admin))
|
|
17175
|
+
for admin in expandedAdmins:
|
|
17135
17176
|
if not oneItemPerRow or 'rolePrivileges' not in admin:
|
|
17136
17177
|
csvPF.WriteRowTitles(flattenJSON(admin))
|
|
17137
17178
|
else:
|
|
@@ -567,7 +567,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
567
567
|
```
|
|
568
568
|
gam calendar <CalendarEntity> show events [<EventEntity>] <EventDisplayProperty>*
|
|
569
569
|
[fields <EventFieldNameList>] [showdayofweek]
|
|
570
|
-
[countsly
|
|
570
|
+
[countsly|formatjson]
|
|
571
571
|
```
|
|
572
572
|
In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
|
|
573
573
|
|
|
@@ -586,8 +586,9 @@ By default, Gam displays event details, use `countsonly` to display only the num
|
|
|
586
586
|
```
|
|
587
587
|
gam calendar <CalendarEntity> print events [<EventEntity>] <EventDisplayProperty>*
|
|
588
588
|
[fields <EventFieldNameList>] [showdayofweek]
|
|
589
|
-
|
|
590
|
-
[
|
|
589
|
+
(addcsvdata <FieldName> <String>)*
|
|
590
|
+
[eventrowfilter]
|
|
591
|
+
[countsonly|(formatjson [quotechar <Character>])] [todrive <ToDriveAttribute>*]
|
|
591
592
|
```
|
|
592
593
|
In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
|
|
593
594
|
|
|
@@ -598,6 +599,9 @@ option `singleevents` to display all instances of a recurring event.
|
|
|
598
599
|
|
|
599
600
|
`showdayofweek` displays columns `start.dayOfWeek` and `end.dayOfWeek` when event start and end times are displayed.
|
|
600
601
|
|
|
602
|
+
Add additional columns of data from the command line to the output after the calendarId.
|
|
603
|
+
* `addcsvdata <FieldName> <String>`
|
|
604
|
+
|
|
601
605
|
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
|
602
606
|
* `formatjson` - Display the fields in JSON format.
|
|
603
607
|
|
|
@@ -10,6 +10,18 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|
|
10
10
|
|
|
11
11
|
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
|
12
12
|
|
|
13
|
+
### 7.23.04
|
|
14
|
+
|
|
15
|
+
Added option `addcsvdata <FieldName> <String>` to `gam <UserTypeEntity> print events`
|
|
16
|
+
and `gam calendars <CalendarEntity> print events` that adds additional columns of data to the CSV file output.
|
|
17
|
+
An example would be to get the calendar name in addition to the calendar ID when printing events.
|
|
18
|
+
```
|
|
19
|
+
gam redirect csv ./Resources.csv print resources fields email,name
|
|
20
|
+
gam redirect csv ./ResourceEventCounts.csv multiprocess redirect stderr - multiprocess csv Resources.csv gam calendar "~resourceEmail" print events starttime -1y countsonly addcsvdata calendarName "~resourceName"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Upgraded to OpenSSL 3.6.0.
|
|
24
|
+
|
|
13
25
|
### 7.23.03
|
|
14
26
|
|
|
15
27
|
Upgraded to OpenSSL 3.5.4.
|
|
@@ -252,7 +252,7 @@ writes the credentials into the file oauth2.txt.
|
|
|
252
252
|
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
|
253
253
|
admin@server:/Users/admin$ gam version
|
|
254
254
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
|
255
|
-
GAM 7.23.
|
|
255
|
+
GAM 7.23.04 - https://github.com/GAM-team/GAM - pyinstaller
|
|
256
256
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
257
257
|
Python 3.13.7 64-bit final
|
|
258
258
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -653,7 +653,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
653
653
|
```
|
|
654
654
|
gam <UserTypeEntity> show events <UserCalendarEntity> [<EventEntity>] <EventDisplayProperty>*
|
|
655
655
|
[fields <EventFieldNameList>] [showdayofweek]
|
|
656
|
-
[countsonly
|
|
656
|
+
[countsonly|formatjson]
|
|
657
657
|
```
|
|
658
658
|
In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
|
|
659
659
|
|
|
@@ -672,8 +672,8 @@ By default, Gam displays event details, use `countsonly` to display only the num
|
|
|
672
672
|
```
|
|
673
673
|
gam <UserTypeEntity> print events <UserCalendarEntity> [<EventEntity>] <EventDisplayProperty>*
|
|
674
674
|
[fields <EventFieldNameList>] [showdayofweek]
|
|
675
|
-
|
|
676
|
-
[formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
|
|
675
|
+
(addcsvdata <FieldName> <String>)*
|
|
676
|
+
[eventrowfilter] [countsonly|(formatjson [quotechar <Character>])] [todrive <ToDriveAttribute>*]
|
|
677
677
|
```
|
|
678
678
|
In `<EventEntity>`, any `<EventSelectProperty>` options must precede all other options.
|
|
679
679
|
|
|
@@ -684,6 +684,9 @@ option `singleevents` to display all instances of a recurring event.
|
|
|
684
684
|
|
|
685
685
|
`showdayofweek` displays columns `start.dayOfWeek` and `end.dayOfWeek` when event start and end times are displayed.
|
|
686
686
|
|
|
687
|
+
Add additional columns of data from the command line to the output after the calendarId.
|
|
688
|
+
* `addcsvdata <FieldName> <String>`
|
|
689
|
+
|
|
687
690
|
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
|
688
691
|
* `formatjson` - Display the fields in JSON format.
|
|
689
692
|
|
|
@@ -398,8 +398,8 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
398
398
|
gam <UserTypeEntity> show contacts
|
|
399
399
|
<PeoplePrintShowUserContactSelection>
|
|
400
400
|
[orderby firstname|lastname|(lastmodified ascending)|(lastnodified descending)
|
|
401
|
-
[
|
|
402
|
-
[formatjson]
|
|
401
|
+
[allfields|(fields <PeopleFieldNameList>)] [showgroups] [showmetadata]
|
|
402
|
+
[countsonly|formatjson]
|
|
403
403
|
```
|
|
404
404
|
By default, Gam displays all of a user's people contacts.
|
|
405
405
|
* `query <String>` - Display contacts based on the data in their fields
|
|
@@ -416,8 +416,8 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
416
416
|
gam <UserTypeEntity> print contacts [todrive <ToDriveAttribute>*]
|
|
417
417
|
<PeoplePrintShowUserContactSelection>
|
|
418
418
|
[orderby firstname|lastname|(lastmodified ascending)|(lastnodified descending)
|
|
419
|
-
[
|
|
420
|
-
[formatjson [quotechar <Character>]]
|
|
419
|
+
[allfields|(fields <PeopleFieldNameList>)] [showgroups] [showmetadata]
|
|
420
|
+
[countsonly|(formatjson [quotechar <Character>])]
|
|
421
421
|
```
|
|
422
422
|
By default, Gam displays all of a user's people contacts.
|
|
423
423
|
* `query <String>` - Display contacts based on the data in their fields
|
|
@@ -547,8 +547,8 @@ User: user@domain.com, Delete maximum of 15 Other Contacts
|
|
|
547
547
|
```
|
|
548
548
|
gam <UserTypeEntity> show othercontacts
|
|
549
549
|
[<OtherContactsSelection>]
|
|
550
|
-
[
|
|
551
|
-
[formatjson]
|
|
550
|
+
[allfields|(fields <OtherContactsFieldNameList>)] [showmetadata]
|
|
551
|
+
[countsonly|formatjson]
|
|
552
552
|
```
|
|
553
553
|
By default, Gam displays all of a user's Other Contacts; use
|
|
554
554
|
`<OtherContactsSelection>` to display a selection of Other Contacts.
|
|
@@ -563,8 +563,8 @@ By default, Gam displays the information as an indented list of keys and values.
|
|
|
563
563
|
```
|
|
564
564
|
gam <UserTypeEntity> print othercontacts [todrive <ToDriveAttribute>*]
|
|
565
565
|
[<OtherContactsSelection>]
|
|
566
|
-
[
|
|
567
|
-
[formatjson [quotechar <Character>]]
|
|
566
|
+
[allfields|(fields <OtherContactsFieldNameList>)] [showmetadata]
|
|
567
|
+
[countsonly|(formatjson [quotechar <Character>])]
|
|
568
568
|
```
|
|
569
569
|
By default, Gam displays all of a user's Other Contacts; use
|
|
570
570
|
`<OtherContactsSelection>` to display a selection of Other Contacts.
|
|
@@ -122,7 +122,7 @@ gam <UserTypeEntity> show tasks [tasklists <TasklistEntity>]
|
|
|
122
122
|
[updatedmin <Time>]
|
|
123
123
|
[showcompleted [<Boolean>]] [showdeleted [<Boolean>]] [showhidden [<Boolean>]] [showall]
|
|
124
124
|
[orderby completed|due|updated]
|
|
125
|
-
[countsonly|
|
|
125
|
+
[compact|countsonly|formatjson]
|
|
126
126
|
```
|
|
127
127
|
The API only supports dates in `duemin` and `duemax' but you must supply a null time:
|
|
128
128
|
* `duemin YYYY-MM-DDT00:00:00Z` - Specify the starting due date
|
|
@@ -152,7 +152,7 @@ gam <UserTypeEntity> print tasks [tasklists <TasklistEntity>] [todrive <ToDriveA
|
|
|
152
152
|
[updatedmin <Time>]
|
|
153
153
|
[showcompleted [<Boolean>]] [showdeleted [<Boolean>]] [showhidden [<Boolean>]] [showall]
|
|
154
154
|
[orderby completed|due|updated]
|
|
155
|
-
[countsonly
|
|
155
|
+
[countsonly|(formatjson [quotechar <Character>])]
|
|
156
156
|
```
|
|
157
157
|
The API only supports dates in `duemin` and `duemax' but you must supply a null time:
|
|
158
158
|
* `duemin YYYY-MM-DDT00:00:00Z` - Specify the starting due date
|
|
@@ -230,7 +230,7 @@ By default, Gam displays the task lists as an indented list of keys and values.
|
|
|
230
230
|
|
|
231
231
|
```
|
|
232
232
|
gam <UserTypeEntity> print tasklists [todrive <ToDriveAttribute>*]
|
|
233
|
-
[countsonly
|
|
233
|
+
[countsonly|(formatjson [quotechar <Character>])]
|
|
234
234
|
```
|
|
235
235
|
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
|
236
236
|
* `formatjson` - Display the fields in JSON format.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Print the current version of Gam with details
|
|
4
4
|
```
|
|
5
5
|
gam version
|
|
6
|
-
GAM 7.23.
|
|
6
|
+
GAM 7.23.04 - https://github.com/GAM-team/GAM - pyinstaller
|
|
7
7
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
8
8
|
Python 3.13.7 64-bit final
|
|
9
9
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00
|
|
|
15
15
|
Print the current version of Gam with details and time offset information
|
|
16
16
|
```
|
|
17
17
|
gam version timeoffset
|
|
18
|
-
GAM 7.23.
|
|
18
|
+
GAM 7.23.04 - https://github.com/GAM-team/GAM - pyinstaller
|
|
19
19
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
20
20
|
Python 3.13.7 64-bit final
|
|
21
21
|
macOS Tahoe 26.0.1 x86_64
|
|
@@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
|
|
|
27
27
|
Print the current version of Gam with extended details and SSL information
|
|
28
28
|
```
|
|
29
29
|
gam version extended
|
|
30
|
-
GAM 7.23.
|
|
30
|
+
GAM 7.23.04 - https://github.com/GAM-team/GAM - pyinstaller
|
|
31
31
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
32
32
|
Python 3.13.7 64-bit final
|
|
33
33
|
macOS Tahoe 26.0.1 x86_64
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|