gam7 7.14.2__tar.gz → 7.14.4__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.14.2 → gam7-7.14.4}/.github/workflows/build.yml +4 -5
- {gam7-7.14.2 → gam7-7.14.4}/PKG-INFO +1 -1
- {gam7-7.14.2 → gam7-7.14.4}/pyproject.toml +0 -1
- {gam7-7.14.2 → gam7-7.14.4}/src/GamUpdate.txt +19 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/__init__.py +22 -12
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glgapi.py +4 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Cloud-Identity-Groups-Membership.md +1 -1
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Cloud-Identity-Groups.md +1 -1
- {gam7-7.14.2 → gam7-7.14.4}/wiki/GamUpdates.md +11 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Install-GAM-as-Python-Library.md +5 -11
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Permissions.md +16 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Version-and-Help.md +6 -6
- gam7-7.14.2/src/requirements.txt +0 -14
- gam7-7.14.2/src/setup.cfg +0 -55
- gam7-7.14.2/src/setup.py +0 -3
- {gam7-7.14.2 → gam7-7.14.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/actions/decrypt.sh +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/actions/entitlements.plist +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/stale.yml +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.github/workflows/pypi.yml +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/.pre-commit-config.yaml +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/LICENSE +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/README.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/.gitignore +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/GamCommands.txt +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/LICENSE +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/README.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/cacerts.pem +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/callgam.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/__main__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/auth.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/client.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/core.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/data.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/http.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/http_core.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/service.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/token_store.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/atom/url.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/cacerts.pem +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/service.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam/six.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam-install.sh +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam-setup.bat +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam.exe.manifest +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam.spec +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/gam.wxs +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/license.rtf +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/requirements-dev.txt +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/tools/mkGamRef.py +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/tools/openssl.props +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/src/version_info.txt.in +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/00scratch.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Addresses.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Administrators.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Alert-Center.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Aliases.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Authorization.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Basic-Items.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Calendars-Access.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Calendars-Events.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Calendars.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chat-Bot.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Customer.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Domain-SharedContacts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Domains-Verification.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Domains.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Drive-Items.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Global-Address-List.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Groups-Membership.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Groups.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Home.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Licenses.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/List-Items.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/List.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Organizational-Units.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Other-Resources.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Permission-Matches.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/README.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Rclone.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Reports.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Reseller.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Resources.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Schemas.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Scripts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Send-Email.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Shared-Drives.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Sites.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Tag-Replace.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Todrive.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Calendars.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Chat.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Contacts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Forms.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Meet.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Photo.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Tag-Manager.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Tasks.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-Tokens.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users-YouTube.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Users.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/_Sidebar.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/gam.cfg.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Home.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Printers.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.14.2 → gam7-7.14.4}/wiki/l-_Footer.md +0 -0
|
@@ -292,10 +292,10 @@ jobs:
|
|
|
292
292
|
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
|
293
293
|
run: |
|
|
294
294
|
cd "${OPENSSL_SOURCE_PATH}"
|
|
295
|
-
if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
|
|
295
|
+
#if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
|
|
296
296
|
# https://github.com/openssl/openssl/issues/26239
|
|
297
297
|
export CFLAGS=-DNO_INTERLOCKEDOR64
|
|
298
|
-
fi
|
|
298
|
+
#fi
|
|
299
299
|
# --libdir=lib is needed so Python can find OpenSSL libraries
|
|
300
300
|
"${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
|
|
301
301
|
|
|
@@ -462,7 +462,7 @@ jobs:
|
|
|
462
462
|
curl -O -L "$latest_crypt_whl"
|
|
463
463
|
"$PYTHON" -m pip install cryptography*.whl
|
|
464
464
|
|
|
465
|
-
|
|
465
|
+
#- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
466
466
|
|
|
467
467
|
# - name: Compile cryptography from source (no legacy)
|
|
468
468
|
# if: runner.os != 'Windows' || runner.arch != 'ARM64'
|
|
@@ -473,8 +473,7 @@ jobs:
|
|
|
473
473
|
run: |
|
|
474
474
|
echo "before anything..."
|
|
475
475
|
"$PYTHON" -m pip list
|
|
476
|
-
"$PYTHON" -m pip install --upgrade
|
|
477
|
-
echo "after requirements..."
|
|
476
|
+
"$PYTHON" -m pip install --upgrade ..[yubikey]
|
|
478
477
|
"$PYTHON" -m pip list
|
|
479
478
|
#"$PYTHON" -m pip install --force-reinstall --no-deps --upgrade cryptography
|
|
480
479
|
echo "after everything..."
|
|
@@ -7,7 +7,6 @@ authors = [
|
|
|
7
7
|
{ name="Jay Lee", email="jay0lee@gmail.com" },
|
|
8
8
|
{ name="Ross Scroggs", email="Ross.Scroggs@gmail.com" },
|
|
9
9
|
]
|
|
10
|
-
# The following deps and optional deps should be edited to match: setup.cfg, requirements.txt
|
|
11
10
|
# notice that yubikey-manager remains optional further down since it is less command and adds
|
|
12
11
|
#significant compile dependencies.
|
|
13
12
|
dependencies = [
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
7.14.04
|
|
2
|
+
|
|
3
|
+
Fixed bug in `gam print|show cigroups cimember <UserItem>` that generated the following error:
|
|
4
|
+
```
|
|
5
|
+
ERROR: Cloud Identity Group: groups/-, Print Failed: Error(4013): Insufficient permissions to retrieve memberships.
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
Updated `gam <UserTypeEntity> update user suspended off` and `gam <UserTypeEntity> unsuspend users`
|
|
9
|
+
to handle the following error that occurs when trying to unsuspend a user that has been suspended for abuse.
|
|
10
|
+
```
|
|
11
|
+
ERROR: 412: adminCannotUnsuspend - Cannot restore a user suspended for abuse.
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
* See: https://support.google.com/a/answer/1110339
|
|
15
|
+
|
|
16
|
+
7.14.03
|
|
17
|
+
|
|
18
|
+
Fixed bug in `gam print cigroup-members includederivedmembership` that caused a trap.
|
|
19
|
+
|
|
1
20
|
7.14.02
|
|
2
21
|
|
|
3
22
|
Fixed bug in `gam print|show cigroups|cigroups-members cimember <UserItem>` that generated the following error:
|
|
@@ -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.14.
|
|
28
|
+
__version__ = '7.14.04'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -6011,7 +6011,11 @@ def getCIGroupMemberRoleFixType(member):
|
|
|
6011
6011
|
def getCIGroupTransitiveMemberRoleFixType(groupName, tmember):
|
|
6012
6012
|
''' map transitive member to normal member '''
|
|
6013
6013
|
tid = tmember['preferredMemberKey'][0].get('id', GC.Values[GC.CUSTOMER_ID]) if tmember['preferredMemberKey'] else ''
|
|
6014
|
-
|
|
6014
|
+
if '/' in tmember['member']:
|
|
6015
|
+
ttype, tname = tmember['member'].split('/')
|
|
6016
|
+
else:
|
|
6017
|
+
ttype = ''
|
|
6018
|
+
tname = tmember['member']
|
|
6015
6019
|
member = {'name': f'{groupName}/membershipd/{tname}', 'preferredMemberKey': {'id': tid}}
|
|
6016
6020
|
if 'type' not in tmember:
|
|
6017
6021
|
if tid == GC.Values[GC.CUSTOMER_ID]:
|
|
@@ -36828,11 +36832,11 @@ def doPrintCIGroups():
|
|
|
36828
36832
|
|
|
36829
36833
|
ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
|
|
36830
36834
|
setTrueCustomerId()
|
|
36835
|
+
parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
|
|
36831
36836
|
delimiter = GC.Values[GC.CSV_OUTPUT_FIELD_DELIMITER]
|
|
36832
36837
|
memberRestrictions = sortHeaders = False
|
|
36833
36838
|
memberDisplayOptions = initPGGroupMemberDisplayOptions()
|
|
36834
36839
|
pageSize = 500
|
|
36835
|
-
parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
|
|
36836
36840
|
groupFieldsLists = {'ci': ['groupKey']}
|
|
36837
36841
|
csvPF = CSVPrintFile(['email'])
|
|
36838
36842
|
FJQC = FormatJSONQuoteChar(csvPF)
|
|
@@ -36850,7 +36854,7 @@ def doPrintCIGroups():
|
|
|
36850
36854
|
showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user'])
|
|
36851
36855
|
elif myarg in {'cimember', 'enterprisemember', 'ciowner'}:
|
|
36852
36856
|
emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group'])
|
|
36853
|
-
memberQuery = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels"
|
|
36857
|
+
memberQuery = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels && parent == '{parent}'"
|
|
36854
36858
|
entitySelection = None
|
|
36855
36859
|
if myarg == 'ciowner':
|
|
36856
36860
|
showOwnedBy = emailAddress
|
|
@@ -37096,7 +37100,7 @@ def getCIGroupTransitiveMembers(ci, groupName, membersList, i, count):
|
|
|
37096
37100
|
entityUnknownWarning(Ent.CLOUD_IDENTITY_GROUP, groupName, i, count)
|
|
37097
37101
|
return False
|
|
37098
37102
|
except GAPI.permissionDenied as e:
|
|
37099
|
-
|
|
37103
|
+
entityActionFailedWarning([Ent.CLOUD_IDENTITY_GROUP, groupName], str(e))
|
|
37100
37104
|
return False
|
|
37101
37105
|
for member in groupMembers:
|
|
37102
37106
|
membersList.append(getCIGroupTransitiveMemberRoleFixType(groupName, member))
|
|
@@ -37252,6 +37256,7 @@ def _getCIListGroupMembersArgs(listView):
|
|
|
37252
37256
|
def doPrintCIGroupMembers():
|
|
37253
37257
|
ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
|
|
37254
37258
|
setTrueCustomerId()
|
|
37259
|
+
parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
|
|
37255
37260
|
memberOptions = initMemberOptions()
|
|
37256
37261
|
memberDisplayOptions = initIPSGMGroupMemberDisplayOptions()
|
|
37257
37262
|
groupColumn = True
|
|
@@ -37273,7 +37278,7 @@ def doPrintCIGroupMembers():
|
|
|
37273
37278
|
showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user'])
|
|
37274
37279
|
elif myarg in {'cimember', 'enterprisemember', 'ciowner'}:
|
|
37275
37280
|
emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group'])
|
|
37276
|
-
query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels"
|
|
37281
|
+
query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels && parent == '{parent}'"
|
|
37277
37282
|
entityList = None
|
|
37278
37283
|
if myarg == 'ciowner':
|
|
37279
37284
|
showOwnedBy = emailAddress
|
|
@@ -37475,6 +37480,7 @@ def doShowCIGroupMembers():
|
|
|
37475
37480
|
|
|
37476
37481
|
ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
|
|
37477
37482
|
setTrueCustomerId()
|
|
37483
|
+
parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
|
|
37478
37484
|
subTitle = f'{Msg.ALL} {Ent.Plural(Ent.CLOUD_IDENTITY_GROUP)}'
|
|
37479
37485
|
groupFieldsLists = {'ci': ['groupKey', 'name']}
|
|
37480
37486
|
entityList = query = showOwnedBy = None
|
|
@@ -37492,7 +37498,7 @@ def doShowCIGroupMembers():
|
|
|
37492
37498
|
showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user'])
|
|
37493
37499
|
elif myarg in {'cimember', 'enterprisemember', 'ciowner'}:
|
|
37494
37500
|
emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group'])
|
|
37495
|
-
query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels"
|
|
37501
|
+
query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels parent == '{parent}'"
|
|
37496
37502
|
entityList = None
|
|
37497
37503
|
if myarg == 'ciowner':
|
|
37498
37504
|
showOwnedBy = emailAddress
|
|
@@ -44421,7 +44427,7 @@ def updateUsers(entityList):
|
|
|
44421
44427
|
try:
|
|
44422
44428
|
result = callGAPI(cd.users(), 'update',
|
|
44423
44429
|
throwReasons=[GAPI.CONDITION_NOT_MET, GAPI.USER_NOT_FOUND, GAPI.DOMAIN_NOT_FOUND,
|
|
44424
|
-
GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
|
|
44430
|
+
GAPI.FORBIDDEN, GAPI.BAD_REQUEST, GAPI.ADMIN_CANNOT_UNSUSPEND,
|
|
44425
44431
|
GAPI.INVALID, GAPI.INVALID_INPUT, GAPI.INVALID_PARAMETER,
|
|
44426
44432
|
GAPI.INVALID_ORGUNIT, GAPI.INVALID_SCHEMA_VALUE, GAPI.DUPLICATE,
|
|
44427
44433
|
GAPI.INSUFFICIENT_ARCHIVED_USER_LICENSES, GAPI.CONFLICT],
|
|
@@ -44483,7 +44489,8 @@ def updateUsers(entityList):
|
|
|
44483
44489
|
entityActionFailedWarning([Ent.USER, user, Ent.USER, body['primaryEmail']], str(e), i, count)
|
|
44484
44490
|
except GAPI.invalidOrgunit:
|
|
44485
44491
|
entityActionFailedWarning([Ent.USER, user], Msg.INVALID_ORGUNIT, i, count)
|
|
44486
|
-
except (GAPI.resourceNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis,
|
|
44492
|
+
except (GAPI.resourceNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis,
|
|
44493
|
+
GAPI.forbidden, GAPI.badRequest, GAPI.adminCannotUnsuspend,
|
|
44487
44494
|
GAPI.invalid, GAPI.invalidInput, GAPI.invalidParameter, GAPI.insufficientArchivedUserLicenses,
|
|
44488
44495
|
GAPI.conflict, GAPI.badRequest, GAPI.backendError, GAPI.systemError, GAPI.conditionNotMet) as e:
|
|
44489
44496
|
entityActionFailedWarning([Ent.USER, user], str(e), i, count)
|
|
@@ -44651,12 +44658,14 @@ def suspendUnsuspendUsers(entityList):
|
|
|
44651
44658
|
try:
|
|
44652
44659
|
callGAPI(cd.users(), 'update',
|
|
44653
44660
|
throwReasons=[GAPI.USER_NOT_FOUND, GAPI.DOMAIN_NOT_FOUND,
|
|
44654
|
-
GAPI.DOMAIN_CANNOT_USE_APIS, GAPI.FORBIDDEN, GAPI.BAD_REQUEST
|
|
44661
|
+
GAPI.DOMAIN_CANNOT_USE_APIS, GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
|
|
44662
|
+
GAPI.ADMIN_CANNOT_UNSUSPEND],
|
|
44655
44663
|
userKey=user, body=body)
|
|
44656
44664
|
entityActionPerformed([Ent.USER, user], i, count)
|
|
44657
44665
|
except GAPI.userNotFound:
|
|
44658
44666
|
entityUnknownWarning(Ent.USER, user, i, count)
|
|
44659
|
-
except (GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden,
|
|
44667
|
+
except (GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden,
|
|
44668
|
+
GAPI.badRequest, GAPI.adminCannotUnsuspend) as e:
|
|
44660
44669
|
entityActionFailedWarning([Ent.USER, user], str(e), i, count)
|
|
44661
44670
|
|
|
44662
44671
|
# gam suspend users <UserTypeEntity> [noactionifalias]
|
|
@@ -45040,6 +45049,7 @@ def infoUsers(entityList):
|
|
|
45040
45049
|
|
|
45041
45050
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
45042
45051
|
ci = None
|
|
45052
|
+
setTrueCustomerId()
|
|
45043
45053
|
getAliases = getBuildingNames = getCIGroupsTree = getGroups = getLicenses = getSchemas = not GC.Values[GC.QUICK_INFO_USER]
|
|
45044
45054
|
getGroupsTree = False
|
|
45045
45055
|
FJQC = FormatJSONQuoteChar()
|
|
@@ -49541,7 +49551,7 @@ def doCourseAddItems(courseIdList, getEntityListArg):
|
|
|
49541
49551
|
addItems = getStringReturnInList(Cmd.OB_COURSE_ALIAS)
|
|
49542
49552
|
elif addType == Ent.COURSE_TOPIC:
|
|
49543
49553
|
addItems = getStringReturnInList(Cmd.OB_COURSE_TOPIC)
|
|
49544
|
-
else: # addType == Ent.COURSE_ANNOUNCEMENT:
|
|
49554
|
+
else: #elif addType == Ent.COURSE_ANNOUNCEMENT:
|
|
49545
49555
|
addItems = [getCourseAnnouncement(True)]
|
|
49546
49556
|
courseParticipantLists = None
|
|
49547
49557
|
else:
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
ABORTED = 'aborted'
|
|
24
24
|
ABUSIVE_CONTENT_RESTRICTION = 'abusiveContentRestriction'
|
|
25
25
|
ACCESS_NOT_CONFIGURED = 'accessNotConfigured'
|
|
26
|
+
ADMIN_CANNOT_UNSUSPEND = 'adminCannotUnsuspend'
|
|
26
27
|
ALREADY_EXISTS = 'alreadyExists'
|
|
27
28
|
APPLY_LABEL_FORBIDDEN = 'applyLabelForbidden'
|
|
28
29
|
AUTH_ERROR = 'authError'
|
|
@@ -368,6 +369,8 @@ class abusiveContentRestriction(Exception):
|
|
|
368
369
|
pass
|
|
369
370
|
class accessNotConfigured(Exception):
|
|
370
371
|
pass
|
|
372
|
+
class adminCannotUnsuspend(Exception):
|
|
373
|
+
pass
|
|
371
374
|
class alreadyExists(Exception):
|
|
372
375
|
pass
|
|
373
376
|
class applyLabelForbidden(Exception):
|
|
@@ -689,6 +692,7 @@ REASON_EXCEPTION_MAP = {
|
|
|
689
692
|
ABORTED: aborted,
|
|
690
693
|
ABUSIVE_CONTENT_RESTRICTION: abusiveContentRestriction,
|
|
691
694
|
ACCESS_NOT_CONFIGURED: accessNotConfigured,
|
|
695
|
+
ADMIN_CANNOT_UNSUSPEND: adminCannotUnsuspend,
|
|
692
696
|
ALREADY_EXISTS: alreadyExists,
|
|
693
697
|
APPLY_LABEL_FORBIDDEN: applyLabelForbidden,
|
|
694
698
|
AUTH_ERROR: authError,
|
|
@@ -40,7 +40,7 @@ Dynamic Groups require Cloud Identity Premium accounts.
|
|
|
40
40
|
* https://cloud.google.com/identity/docs/how-to/create-dynamic-groups
|
|
41
41
|
|
|
42
42
|
The `cimember <UserItem>` option of `gam print|show cigroup-members` requires a Google Workspace Enterprise Standard, Enterprise Plus, and Enterprise for Education;
|
|
43
|
-
and Cloud Identity Premium accounts.
|
|
43
|
+
and Cloud Identity Premium accounts.
|
|
44
44
|
|
|
45
45
|
* https://cloud.google.com/identity/docs/reference/rest/v1/groups.memberships/searchTransitiveGroups
|
|
46
46
|
|
|
@@ -52,7 +52,7 @@ Dynamic Groups require Cloud Identity Premium accounts.
|
|
|
52
52
|
* https://cloud.google.com/identity/docs/how-to/create-dynamic-groups
|
|
53
53
|
|
|
54
54
|
The `cimember <UserItem>` option of `gam print cigroups` requires a Google Workspace Enterprise Standard, Enterprise Plus, and Enterprise for Education;
|
|
55
|
-
and Cloud Identity Premium accounts.
|
|
55
|
+
and Cloud Identity Premium accounts.
|
|
56
56
|
|
|
57
57
|
* https://cloud.google.com/identity/docs/reference/rest/v1/groups.memberships/searchTransitiveGroups
|
|
58
58
|
|
|
@@ -10,6 +10,17 @@ 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.14.03
|
|
14
|
+
|
|
15
|
+
Fixed bug in `gam print cigroup-members includederivedmembership` that caused a trap.
|
|
16
|
+
|
|
17
|
+
### 7.14.02
|
|
18
|
+
|
|
19
|
+
Fixed bug in `gam print|show cigroups|cigroups-members cimember <UserItem>` that generated the following error:
|
|
20
|
+
```
|
|
21
|
+
Cloud Identity Group Print Failed: Request contains an invalid argument.
|
|
22
|
+
```
|
|
23
|
+
|
|
13
24
|
### 7.14.01
|
|
14
25
|
|
|
15
26
|
Don't install yubikey library via pip by default. To install with yubikey support use pip install gam7[yubikey]
|
|
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
|
|
|
251
251
|
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
|
252
252
|
admin@server:/Users/admin$ gam version
|
|
253
253
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
|
254
|
-
GAM 7.14.
|
|
254
|
+
GAM 7.14.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
255
255
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
256
256
|
Python 3.13.5 64-bit final
|
|
257
257
|
MacOS Sequoia 15.5 x86_64
|
|
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
|
|
|
989
989
|
C:\>del C:\GAMConfig\oauth2.txt
|
|
990
990
|
C:\>gam version
|
|
991
991
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
|
992
|
-
GAM 7.14.
|
|
992
|
+
GAM 7.14.03 - https://github.com/GAM-team/GAM - pythonsource
|
|
993
993
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
994
994
|
Python 3.13.5 64-bit final
|
|
995
995
|
Windows-10-10.0.17134 AMD64
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
# Install GAM as Python Library
|
|
2
2
|
|
|
3
|
-
Thanks to Jay Lee for showing me how to do this.
|
|
4
|
-
|
|
5
|
-
On Windows, you need to install Git to use the pip command.
|
|
6
|
-
* See: https://pythoninoffice.com/python-pip-install-from-github/
|
|
7
|
-
|
|
8
|
-
Scroll down to Install Git
|
|
9
3
|
|
|
10
4
|
You can install GAM as a Python library with pip.
|
|
11
5
|
```
|
|
12
|
-
pip install
|
|
6
|
+
pip install gam7
|
|
13
7
|
```
|
|
14
8
|
|
|
15
9
|
Or as a PEP 508 Requirement Specifier, e.g. in requirements.txt file:
|
|
16
10
|
```
|
|
17
|
-
|
|
11
|
+
gam7
|
|
18
12
|
```
|
|
19
13
|
|
|
20
14
|
Or a pyproject.toml file:
|
|
@@ -23,13 +17,13 @@ Or a pyproject.toml file:
|
|
|
23
17
|
name = "your-project"
|
|
24
18
|
# ...
|
|
25
19
|
dependencies = [
|
|
26
|
-
"
|
|
20
|
+
"gam7"
|
|
27
21
|
]
|
|
28
22
|
```
|
|
29
23
|
|
|
30
|
-
Target a specific
|
|
24
|
+
Target a specific version:
|
|
31
25
|
```
|
|
32
|
-
|
|
26
|
+
gam7==/7.13.3
|
|
33
27
|
```
|
|
34
28
|
|
|
35
29
|
## Using the library
|
|
@@ -214,6 +214,12 @@ The option `updatesheetprotectedranges` only applies to items in `<DriveFileEnti
|
|
|
214
214
|
* ACLs with role reader or commenter will be removed from existing protected ranges
|
|
215
215
|
* ACLs with role writer or higher will be added to existing protected ranges
|
|
216
216
|
|
|
217
|
+
`
|
|
218
|
+
`enforceexpansiveaccess` defaults to the value of `gam.cfg/enforce_expansive_access` that controls
|
|
219
|
+
the ability to update inherited ACLs.
|
|
220
|
+
* False - Inherited ACLs can be updated
|
|
221
|
+
* True = Inherited ACLs can not be updated
|
|
222
|
+
|
|
217
223
|
By default, the file ID is displayed in the output; to see the file name, use the `showtitles`
|
|
218
224
|
option; this requires an additional API call per file.
|
|
219
225
|
|
|
@@ -234,6 +240,11 @@ The option `updatesheetprotectedranges` only applies to items in `<DriveFileEnti
|
|
|
234
240
|
* Sheet Protected Ranges are updated to reflect the deleted ACL; additional API calls are required.
|
|
235
241
|
* ACLs with any role will be removed from existing protected ranges
|
|
236
242
|
|
|
243
|
+
`enforceexpansiveaccess` defaults to the value of `gam.cfg/enforce_expansive_access` that controls
|
|
244
|
+
the ability to delete delete inherited ACLs.
|
|
245
|
+
* False - Inherited ACLs can be deleted
|
|
246
|
+
* True = Inherited ACLs can not be deleted
|
|
247
|
+
|
|
237
248
|
By default, the file ID is displayed in the output; to see the file name, use the `showtitles`
|
|
238
249
|
option; this requires an additional API call per file.
|
|
239
250
|
|
|
@@ -266,6 +277,11 @@ gam <UserTypeEntity> delete permissions <DriveFileEntity> <DriveFilePermissionID
|
|
|
266
277
|
<PermissionMatch>* [<PermissionMatchAction>]
|
|
267
278
|
[enforceexpansiveaccess [<Boolean>]]
|
|
268
279
|
```
|
|
280
|
+
`enforceexpansiveaccess` defaults to the value of `gam.cfg/enforce_expansive_access` that controls
|
|
281
|
+
the ability to delete delete inherited ACLs.
|
|
282
|
+
* False - Inherited ACLs can be deleted
|
|
283
|
+
* True = Inherited ACLs can not be deleted
|
|
284
|
+
|
|
269
285
|
When deleting permissions from JSON data, permissions with role `owner` true are never processed.
|
|
270
286
|
|
|
271
287
|
## Display file permissions/sharing
|
|
@@ -4,7 +4,7 @@ k
|
|
|
4
4
|
Print the current version of Gam with details
|
|
5
5
|
```
|
|
6
6
|
gam version
|
|
7
|
-
GAM 7.14.
|
|
7
|
+
GAM 7.14.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
8
8
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
9
9
|
Python 3.13.5 64-bit final
|
|
10
10
|
MacOS Sequoia 15.5 x86_64
|
|
@@ -16,7 +16,7 @@ Time: 2023-06-02T21:10:00-07:00
|
|
|
16
16
|
Print the current version of Gam with details and time offset information
|
|
17
17
|
```
|
|
18
18
|
gam version timeoffset
|
|
19
|
-
GAM 7.14.
|
|
19
|
+
GAM 7.14.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
20
20
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
21
21
|
Python 3.13.5 64-bit final
|
|
22
22
|
MacOS Sequoia 15.5 x86_64
|
|
@@ -28,7 +28,7 @@ Your system time differs from www.googleapis.com by less than 1 second
|
|
|
28
28
|
Print the current version of Gam with extended details and SSL information
|
|
29
29
|
```
|
|
30
30
|
gam version extended
|
|
31
|
-
GAM 7.14.
|
|
31
|
+
GAM 7.14.03 - https://github.com/GAM-team/GAM - pyinstaller
|
|
32
32
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
33
33
|
Python 3.13.5 64-bit final
|
|
34
34
|
MacOS Sequoia 15.5 x86_64
|
|
@@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|
|
65
65
|
Path: /Users/Admin/bin/gam7
|
|
66
66
|
Version Check:
|
|
67
67
|
Current: 5.35.08
|
|
68
|
-
Latest: 7.14.
|
|
68
|
+
Latest: 7.14.03
|
|
69
69
|
echo $?
|
|
70
70
|
1
|
|
71
71
|
```
|
|
@@ -73,7 +73,7 @@ echo $?
|
|
|
73
73
|
Print the current version number without details
|
|
74
74
|
```
|
|
75
75
|
gam version simple
|
|
76
|
-
7.14.
|
|
76
|
+
7.14.03
|
|
77
77
|
```
|
|
78
78
|
In Linux/MacOS you can do:
|
|
79
79
|
```
|
|
@@ -83,7 +83,7 @@ echo $VER
|
|
|
83
83
|
Print the current version of Gam and address of this Wiki
|
|
84
84
|
```
|
|
85
85
|
gam help
|
|
86
|
-
GAM 7.14.
|
|
86
|
+
GAM 7.14.03 - https://github.com/GAM-team/GAM
|
|
87
87
|
GAM Team <google-apps-manager@googlegroups.com>
|
|
88
88
|
Python 3.13.5 64-bit final
|
|
89
89
|
MacOS Sequoia 15.5 x86_64
|
gam7-7.14.2/src/requirements.txt
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
chardet>=5.2.0
|
|
2
|
-
cryptography>=44.0.2
|
|
3
|
-
distro; sys_platform=='linux'
|
|
4
|
-
filelock>=3.18.0
|
|
5
|
-
google-api-python-client>=2.167.0
|
|
6
|
-
google-auth-httplib2>=0.2.0
|
|
7
|
-
google-auth-oauthlib>=1.2.2
|
|
8
|
-
google-auth>=2.39.0
|
|
9
|
-
httplib2>=0.22.0
|
|
10
|
-
lxml>=5.4.0
|
|
11
|
-
passlib>=1.7.4
|
|
12
|
-
pathvalidate>=3.2.3
|
|
13
|
-
python-dateutil
|
|
14
|
-
yubikey-manager>=5.6.1
|
gam7-7.14.2/src/setup.cfg
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
[metadata]
|
|
2
|
-
name = GAM for Google Workspace
|
|
3
|
-
version = attr: gam__version__
|
|
4
|
-
description = Command line management for Google Workspaces
|
|
5
|
-
long_description = file: readme.md
|
|
6
|
-
long_description_content_type = text/markdown
|
|
7
|
-
url = https://github.com/GAM-team/GAM
|
|
8
|
-
author = GAM Team
|
|
9
|
-
author_email = google-apps-manager@googlegroups.com
|
|
10
|
-
license = Apache
|
|
11
|
-
license_files = LICENSE
|
|
12
|
-
keywords = google, oauth2, gsuite, google-apps, google-admin-sdk, google-drive, google-cloud, google-calendar, gam, google-api, oauth2-client, google-workspace
|
|
13
|
-
classifiers =
|
|
14
|
-
Programming Language :: Python :: 3
|
|
15
|
-
Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Programming Language :: Python :: 3.9
|
|
17
|
-
Programming Language :: Python :: 3.10
|
|
18
|
-
Programming Language :: Python :: 3.11
|
|
19
|
-
Programming Language :: Python :: 3.12
|
|
20
|
-
Programming Language :: Python :: 3.13
|
|
21
|
-
License :: OSI Approved :: Apache License
|
|
22
|
-
|
|
23
|
-
[options]
|
|
24
|
-
packages = find:
|
|
25
|
-
python_requires = >= 3.9
|
|
26
|
-
# The following files should be edited to match: pyproject.toml, requirements.txt
|
|
27
|
-
install_requires =
|
|
28
|
-
chardet >= 5.2.0
|
|
29
|
-
cryptography >= 44.0.2
|
|
30
|
-
distro; sys_platform == 'linux'
|
|
31
|
-
filelock >= 3.18.0
|
|
32
|
-
google-api-python-client >= 2.167.0
|
|
33
|
-
google-auth-httplib2 >= 0.2.0
|
|
34
|
-
google-auth-oauthlib >= 1.2.2
|
|
35
|
-
google-auth >= 2.39.0
|
|
36
|
-
httplib2 >= 0.22.0
|
|
37
|
-
lxml >= 5.4.0
|
|
38
|
-
passlib >= 1.7.4
|
|
39
|
-
pathvalidate >= 3.2.3
|
|
40
|
-
python-dateutil
|
|
41
|
-
yubikey-manager >= 5.6.1
|
|
42
|
-
|
|
43
|
-
[options.package_data]
|
|
44
|
-
* = *.pem
|
|
45
|
-
|
|
46
|
-
# used during pip install .[test]
|
|
47
|
-
[options.extras_require]
|
|
48
|
-
test = pre-commit
|
|
49
|
-
|
|
50
|
-
[options.entry_points]
|
|
51
|
-
console_scripts =
|
|
52
|
-
gam = gam.__main__:main
|
|
53
|
-
|
|
54
|
-
[bdist_wheel]
|
|
55
|
-
universal = True
|
gam7-7.14.2/src/setup.py
DELETED
|
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
|