gam7 7.23.5__tar.gz → 7.23.7__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.5 → gam7-7.23.7}/PKG-INFO +1 -1
- {gam7-7.23.5 → gam7-7.23.7}/src/GamCommands.txt +7 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/GamUpdate.txt +16 -2
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/__init__.py +46 -15
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glclargs.py +1 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Administrators.md +15 -4
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Basic-Items.md +1 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GamUpdates.md +14 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1 -1
- {gam7-7.23.5 → gam7-7.23.7}/wiki/List-Items.md +1 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Version-and-Help.md +3 -3
- {gam7-7.23.5 → gam7-7.23.7}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/actions/decrypt.sh +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/actions/entitlements.plist +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/stale.yml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/workflows/build.yml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/.github/workflows/pypi.yml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/LICENSE +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/README.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/pyproject.toml +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/.gitignore +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/LICENSE +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/README.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/callgam.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/__main__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/auth.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/client.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/core.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/data.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/http.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/http_core.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/service.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/token_store.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/atom/url.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/cacerts.pem +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/service.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam-install.sh +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam-setup.bat +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam.exe.manifest +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam.spec +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/gam.wxs +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/license.rtf +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/hooks/hook-googleapiclient.model.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/hooks/hook-httplib2.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/mkGamRef.py +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/openssl.props +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/tools/ssd.mjs +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/src/version_info.txt.in +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/00scratch.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Addresses.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Alert-Center.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Aliases.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Authorization.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Business-Account-Management.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Calendars-Access.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Calendars-Events.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Calendars.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chat-Bot-Setup-Use.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Classroom-StudentGroups.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Customer.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Domains-Verification.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Domains.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Drive-Items.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM-Release-Process.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM7-FAQ.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Global-Address-List.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Groups-Membership.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Groups.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Home.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Licenses.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/List.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Organizational-Units.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Other-Resources.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Permission-Matches.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/README.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Rclone.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Reports.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Reseller.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Resources.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Schemas.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Scripts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Send-Email.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Shared-Drives.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Sites.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Tag-Replace.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Todrive.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Calendars.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Chat.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Contacts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Forms.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Meet.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Photo.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Tasks.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Tokens.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-Web-Resources-and-Sites.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users-YouTube.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Users.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Using-GAM7-with-keyless-authentication-Workload-Identity-Federation.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/_Sidebar.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/gam.cfg.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-AdminSettingsExamples.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Android-Installation.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-BulkOperations.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-CalendarExamples.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Chat-Bot.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Drive.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Email.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Groups.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Command-Reference-Users.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Custom-Schemas.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Data-Transfers.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-DomainVerification.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-ExamplesCSV.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-ExamplesOrganizations.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM-options-files.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM3CSVListings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GAM3GroupSettings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-GoogleDriveManagement.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Home.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-LicenseExamples.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Managing-Admins.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Managing-Devices.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-OAuthKeyManagement.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Printers.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-ResellerCommands.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-SecurityExamples.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.23.5 → gam7-7.23.7}/wiki/legacy/l-_Footer.md +0 -0
|
@@ -368,6 +368,7 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
368
368
|
## Named items
|
|
369
369
|
|
|
370
370
|
<AccessToken> ::= <String>
|
|
371
|
+
<AdminAssigneeType> ::= group|user|serviceaccount|unknown
|
|
371
372
|
<AlertID> ::= <String>
|
|
372
373
|
<APIScopeURL> ::= <String>
|
|
373
374
|
<APPID> ::= <String>
|
|
@@ -691,6 +692,7 @@ If an item contains spaces, it should be surrounded by ".
|
|
|
691
692
|
|
|
692
693
|
## Lists of basic items
|
|
693
694
|
|
|
695
|
+
<AdminAssigneeTypeList> ::= "<AdminAssigneeType>(,<AdminAssigneeType>)*"
|
|
694
696
|
<APIScopeURLList> ::= "<APIScopeURL>(,<APIScopeURL>)*"
|
|
695
697
|
<ASPIDList> ::= "<ASPID>(,<ASPID>)*"
|
|
696
698
|
<AssetTagList> ::= "<AssetTag>(,<AssetTag>)*"
|
|
@@ -1551,11 +1553,16 @@ gam create|add admin <EmailAddress>|<UniqueID> <RoleItem> customer|(org_unit <Or
|
|
|
1551
1553
|
[condition securitygroup|nonsecuritygroup]
|
|
1552
1554
|
gam delete admin <RoleAssignmentId>
|
|
1553
1555
|
|
|
1556
|
+
<AdminAssigneeType> ::= group|user|serviceaccount|unknown
|
|
1557
|
+
<AdminAssigneeTypeList> ::= "<AdminAssigneeType>(,<AdminAssigneeType>)*"
|
|
1558
|
+
|
|
1554
1559
|
gam print admins [todrive <ToDriveAttribute>*]
|
|
1555
1560
|
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1561
|
+
[types <AdminAssigneeTypeList>]
|
|
1556
1562
|
[recursive] [condition] [privileges] [oneitemperrow]
|
|
1557
1563
|
gam show admins
|
|
1558
1564
|
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1565
|
+
[types <AdminAssigneeTypeList>]
|
|
1559
1566
|
[recursive] [condition] [privileges]
|
|
1560
1567
|
|
|
1561
1568
|
# Alert Center
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
7.23.07
|
|
2
|
+
|
|
3
|
+
Fixed bug in `gam print|show admins` where all admin assignments were not displayed when
|
|
4
|
+
`types <AdminAssigneeTypeList>` was not specified, i.e., all assignments should be displayed.
|
|
5
|
+
|
|
6
|
+
7.23.06
|
|
7
|
+
|
|
8
|
+
Added option `types <AdminAssigneeTypeList>` to `gam print|show admins` that allows filtering
|
|
9
|
+
of admin assignments by the type of the assignee; by default, all assignee types are displayed.
|
|
10
|
+
```
|
|
11
|
+
<AdminAssigneeType> ::= group|user|serviceaccount|unknown
|
|
12
|
+
<AdminAssigneeTypeList> ::= "<AdminAssigneeType>(,<AdminAssigneeType>)*"
|
|
13
|
+
```
|
|
14
|
+
|
|
1
15
|
7.23.05
|
|
2
16
|
|
|
3
|
-
Added option `recursive`
|
|
4
|
-
of security groups assigned to roles; the security group
|
|
17
|
+
Added option `recursive` that will display assignments to the members
|
|
18
|
+
of security groups assigned to roles; the security group membership is recursively expanded.
|
|
5
19
|
|
|
6
20
|
7.23.04
|
|
7
21
|
|
|
@@ -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.07'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -16990,23 +16990,39 @@ def doDeleteAdmin():
|
|
|
16990
16990
|
except (GAPI.forbidden, GAPI.permissionDenied) as e:
|
|
16991
16991
|
ClientAPIAccessDeniedExit(str(e))
|
|
16992
16992
|
|
|
16993
|
-
|
|
16993
|
+
ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP = {
|
|
16994
16994
|
'user': 'assignedToUser',
|
|
16995
16995
|
'group': 'assignedToGroup',
|
|
16996
16996
|
'serviceaccount': 'assignedToServiceAccount',
|
|
16997
|
+
'unknown': 'assignedToUnknown',
|
|
16997
16998
|
}
|
|
16998
|
-
|
|
16999
|
+
ALL_ASSIGNEE_TYPES = ['user', 'group', 'serviceaccount']
|
|
17000
|
+
|
|
17001
|
+
PRINT_ADMIN_FIELDS = ['roleAssignmentId', 'roleId', 'assignedTo', 'scopeType', 'orgUnitId']
|
|
16999
17002
|
PRINT_ADMIN_TITLES = ['roleAssignmentId', 'roleId', 'role',
|
|
17000
17003
|
'assignedTo', 'assignedToUser', 'assignedToGroup', 'assignedToServiceAccount', 'assignedToUnknown',
|
|
17001
17004
|
'scopeType', 'orgUnitId', 'orgUnit']
|
|
17002
17005
|
|
|
17003
17006
|
# gam print admins [todrive <ToDriveAttribute>*]
|
|
17004
17007
|
# [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
17008
|
+
# [types <AdminAssigneeTypeList>]
|
|
17005
17009
|
# [recursive] [condition] [privileges] [oneitemperrow]
|
|
17006
17010
|
# gam show admins
|
|
17007
17011
|
# [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
17012
|
+
# [types <AdminAssigneeTypeList>]
|
|
17008
17013
|
# [recursive] [condition] [privileges]
|
|
17009
17014
|
def doPrintShowAdmins():
|
|
17015
|
+
def _getAssigneeTypes(myarg):
|
|
17016
|
+
if myarg in {'type', 'types'}:
|
|
17017
|
+
for gtype in getString(Cmd.OB_ADMIN_ASSIGNEE_TYPE_LIST).lower().replace(',', ' ').split():
|
|
17018
|
+
if gtype in ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP:
|
|
17019
|
+
typesSet.add(ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[gtype])
|
|
17020
|
+
else:
|
|
17021
|
+
invalidChoiceExit(gtype, ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, True)
|
|
17022
|
+
else:
|
|
17023
|
+
return False
|
|
17024
|
+
return True
|
|
17025
|
+
|
|
17010
17026
|
def _getPrivileges(admin):
|
|
17011
17027
|
if showPrivileges:
|
|
17012
17028
|
roleId = admin['roleId']
|
|
@@ -17032,16 +17048,19 @@ def doPrintShowAdmins():
|
|
|
17032
17048
|
def _setNamesFromIds(admin, privileges):
|
|
17033
17049
|
admin['role'] = role_from_roleid(admin['roleId'])
|
|
17034
17050
|
assignedTo = admin['assignedTo']
|
|
17051
|
+
admin['assignedToUnknown'] = False
|
|
17035
17052
|
if assignedTo not in assignedToIdEmailMap:
|
|
17036
|
-
|
|
17037
|
-
|
|
17038
|
-
if assigneeType in
|
|
17039
|
-
assignedToField =
|
|
17053
|
+
emailTypes = ALL_ASSIGNEE_TYPES if admin.get('assigneeType', '') != 'group' else ['group']
|
|
17054
|
+
assigneeEmail, assigneeType = convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal, emailTypes=emailTypes)
|
|
17055
|
+
if assigneeType in ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP:
|
|
17056
|
+
assignedToField = ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[assigneeType]
|
|
17040
17057
|
else:
|
|
17041
17058
|
assignedToField = 'assignedToUnknown'
|
|
17059
|
+
if assignedToField == 'assignedToUnknown':
|
|
17042
17060
|
assigneeEmail = True
|
|
17043
17061
|
assignedToIdEmailMap[assignedTo] = {'assignedToField': assignedToField, 'assigneeEmail': assigneeEmail}
|
|
17044
17062
|
admin[assignedToIdEmailMap[assignedTo]['assignedToField']] = assignedToIdEmailMap[assignedTo]['assigneeEmail']
|
|
17063
|
+
admin['assignedToField'] = assignedToIdEmailMap[assignedTo]['assignedToField']
|
|
17045
17064
|
if privileges is not None:
|
|
17046
17065
|
admin.update(privileges)
|
|
17047
17066
|
if 'orgUnitId' in admin:
|
|
@@ -17051,18 +17070,22 @@ def doPrintShowAdmins():
|
|
|
17051
17070
|
admin['condition'] = 'securitygroup'
|
|
17052
17071
|
elif admin['condition'] == NONSECURITY_GROUP_CONDITION:
|
|
17053
17072
|
admin['condition'] = 'nonsecuritygroup'
|
|
17073
|
+
if debug:
|
|
17074
|
+
print('******', admin['assignedTo'], admin.get('assigneeType', 'no type'),
|
|
17075
|
+
admin['assignedToField'], not typesSet or admin['assignedToField'] in typesSet)
|
|
17076
|
+
return not typesSet or admin['assignedToField'] in typesSet
|
|
17054
17077
|
|
|
17055
17078
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
17056
17079
|
sal = buildGAPIObject(API.SERVICEACCOUNTLOOKUP)
|
|
17057
17080
|
csvPF = CSVPrintFile(PRINT_ADMIN_TITLES) if Act.csvFormat() else None
|
|
17058
17081
|
roleId = None
|
|
17059
17082
|
userKey = None
|
|
17060
|
-
oneItemPerRow = recursive = showPrivileges = False
|
|
17083
|
+
debug = oneItemPerRow = recursive = showPrivileges = False
|
|
17084
|
+
typesSet = set()
|
|
17061
17085
|
kwargs = {}
|
|
17062
17086
|
rolePrivileges = {}
|
|
17063
|
-
fieldsList = PRINT_ADMIN_FIELDS
|
|
17087
|
+
fieldsList = PRINT_ADMIN_FIELDS+['assigneeType']
|
|
17064
17088
|
assignedToIdEmailMap = {}
|
|
17065
|
-
allAssigneeTypes = list(ASSIGNEE_EMAILTYPE_TOFIELD_MAP.keys())
|
|
17066
17089
|
while Cmd.ArgumentsRemaining():
|
|
17067
17090
|
myarg = getArgument()
|
|
17068
17091
|
if csvPF and myarg == 'todrive':
|
|
@@ -17071,6 +17094,8 @@ def doPrintShowAdmins():
|
|
|
17071
17094
|
userKey = kwargs['userKey'] = getEmailAddress()
|
|
17072
17095
|
elif myarg == 'role':
|
|
17073
17096
|
_, roleId = getRoleId()
|
|
17097
|
+
elif _getAssigneeTypes(myarg):
|
|
17098
|
+
pass
|
|
17074
17099
|
elif myarg == 'recursive':
|
|
17075
17100
|
recursive = True
|
|
17076
17101
|
allGroupRoles = ','.join(sorted(ALL_GROUP_ROLES))
|
|
@@ -17088,6 +17113,8 @@ def doPrintShowAdmins():
|
|
|
17088
17113
|
showPrivileges = True
|
|
17089
17114
|
elif myarg == 'oneitemperrow':
|
|
17090
17115
|
oneItemPerRow = True
|
|
17116
|
+
elif myarg == 'debug':
|
|
17117
|
+
debug = True
|
|
17091
17118
|
else:
|
|
17092
17119
|
unknownArgumentExit()
|
|
17093
17120
|
if roleId and not kwargs:
|
|
@@ -17123,11 +17150,11 @@ def doPrintShowAdmins():
|
|
|
17123
17150
|
i += 1
|
|
17124
17151
|
if roleId and roleId != admin['roleId']:
|
|
17125
17152
|
continue
|
|
17153
|
+
assignedTo = admin['assignedTo']
|
|
17126
17154
|
if admin['assigneeType'] != 'group' or not recursive:
|
|
17127
|
-
_setNamesFromIds(admin, _getPrivileges(admin))
|
|
17128
|
-
|
|
17155
|
+
if _setNamesFromIds(admin, _getPrivileges(admin)):
|
|
17156
|
+
expandedAdmins.append(admin)
|
|
17129
17157
|
continue
|
|
17130
|
-
assignedTo = admin['assignedTo']
|
|
17131
17158
|
if assignedTo not in groupMembers:
|
|
17132
17159
|
membersList = []
|
|
17133
17160
|
membersSet = set()
|
|
@@ -17135,7 +17162,9 @@ def doPrintShowAdmins():
|
|
|
17135
17162
|
getGroupMembers(cd, assignedTo, allGroupRoles, membersList, membersSet, i, count,
|
|
17136
17163
|
memberOptions, memberDisplayOptions, level, {Ent.TYPE_USER})
|
|
17137
17164
|
groupMembers[assignedTo] = membersList[:]
|
|
17138
|
-
_setNamesFromIds(admin, _getPrivileges(admin))
|
|
17165
|
+
if not _setNamesFromIds(admin, _getPrivileges(admin)):
|
|
17166
|
+
continue
|
|
17167
|
+
expandedAdmins.append(admin)
|
|
17139
17168
|
if not groupMembers[assignedTo]:
|
|
17140
17169
|
expandedAdmins.append(admin)
|
|
17141
17170
|
continue
|
|
@@ -17158,7 +17187,7 @@ def doPrintShowAdmins():
|
|
|
17158
17187
|
Ind.Increment()
|
|
17159
17188
|
for field in PRINT_ADMIN_TITLES:
|
|
17160
17189
|
if field in admin:
|
|
17161
|
-
if field == 'roleAssignmentId':
|
|
17190
|
+
if (field == 'roleAssignmentId') or (field == 'assignedToUnknown' and not admin[field]):
|
|
17162
17191
|
continue
|
|
17163
17192
|
printKeyValueList([field, admin[field]])
|
|
17164
17193
|
if showPrivileges:
|
|
@@ -17173,6 +17202,8 @@ def doPrintShowAdmins():
|
|
|
17173
17202
|
Ind.Decrement()
|
|
17174
17203
|
else:
|
|
17175
17204
|
for admin in expandedAdmins:
|
|
17205
|
+
admin.pop('assigneeType', None)
|
|
17206
|
+
admin.pop('assignedToField')
|
|
17176
17207
|
if not oneItemPerRow or 'rolePrivileges' not in admin:
|
|
17177
17208
|
csvPF.WriteRowTitles(flattenJSON(admin))
|
|
17178
17209
|
else:
|
|
@@ -1138,6 +1138,7 @@ class GamCLArgs():
|
|
|
1138
1138
|
OB_ARGUMENT = 'argument'
|
|
1139
1139
|
OB_ASP_ID_LIST = 'ASPIDList'
|
|
1140
1140
|
OB_ASSET_ID = 'AssetID'
|
|
1141
|
+
OB_ADMIN_ASSIGNEE_TYPE_LIST = 'AdminAssigneeTypeList'
|
|
1141
1142
|
OB_BROWSER_ENROLLEMNT_TOKEN_ID = 'BrowserEnrollmentTokenID'
|
|
1142
1143
|
OB_BROWSER_ENTITY = 'BrowserEntity'
|
|
1143
1144
|
OB_BUILDING_ID = 'BuildingID'
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
## Definitions
|
|
21
21
|
```
|
|
22
|
+
<AdminAssigneeType> ::= group|user|serviceaccount|unknown
|
|
23
|
+
<AdminAssigneeTypeList> ::= "<AdminAssigneeType>(,<AdminAssigneeType>)*"
|
|
22
24
|
<DomainName> ::= <String>(.<String>)+
|
|
23
25
|
<EmailAddress> ::= <String>@<DomainName>
|
|
24
26
|
<GroupItem> ::= <EmailAddress>|<UniqueID>|<String>
|
|
@@ -1475,16 +1477,25 @@ gam delete admin <RoleAssignmentId>
|
|
|
1475
1477
|
## Display administrators
|
|
1476
1478
|
```
|
|
1477
1479
|
gam print admins [todrive <ToDriveAttribute>*]
|
|
1478
|
-
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1479
|
-
[
|
|
1480
|
+
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1481
|
+
[types <AdminAssigneeTypeList>]
|
|
1482
|
+
[recursive] [condition] [privileges] [oneitemperrow]
|
|
1480
1483
|
gam show admins
|
|
1481
|
-
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1484
|
+
[user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
|
|
1485
|
+
[types <AdminAssigneeTypeList>]
|
|
1486
|
+
[recursive] [condition] [privileges]
|
|
1482
1487
|
```
|
|
1483
1488
|
By default, all administrators and roles are displayed; choose from the following
|
|
1484
1489
|
options to limit the display:
|
|
1485
|
-
* `user <
|
|
1490
|
+
* `user|group <EmailAddress>|<UniqueID>` - Display assignments to this administrator
|
|
1486
1491
|
* `role <RoleItem>` - Display only administrators with this role
|
|
1487
1492
|
|
|
1493
|
+
By default, all admin assignee types are displayed. use `types <AdminAssigneeTypeList>` to filter
|
|
1494
|
+
admin assignments by the type of the assignee.
|
|
1495
|
+
|
|
1496
|
+
By default, assignments to security groups are displayed as a single item; use `recursive`
|
|
1497
|
+
to display assignments to the members of the security groups; the security group membershop is recursively expanded.
|
|
1498
|
+
|
|
1488
1499
|
* `condition` - Display any conditions associated with a role assignment
|
|
1489
1500
|
* `privileges` - Display privileges associated with each role assignment
|
|
1490
1501
|
|
|
@@ -10,6 +10,20 @@ 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.06
|
|
14
|
+
|
|
15
|
+
Added option `types <AdminAssigneeTypeList>` to `gam print|show admins` that allows filtering
|
|
16
|
+
of admin assignments by the type of the assignee; by default, all assignee types are displayed.
|
|
17
|
+
```
|
|
18
|
+
<AdminAssigneeType> ::= group|user|serviceaccount|unknown
|
|
19
|
+
<AdminAssigneeTypeList> ::= "<AdminAssigneeType>(,<AdminAssigneeType>)*"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 7.23.05
|
|
23
|
+
|
|
24
|
+
Added option `recursive` to `gam print|show admins` that will display assignments to the members
|
|
25
|
+
of security groups assigned to roles; the security group membership is recursively expanded.
|
|
26
|
+
|
|
13
27
|
### 7.23.04
|
|
14
28
|
|
|
15
29
|
Added option `addcsvdata <FieldName> <String>` to `gam <UserTypeEntity> print events`
|
|
@@ -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.06 - 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
|
|
@@ -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.06 - 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.06 - 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.06 - 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
|
|
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
|