gam7 7.6.13__tar.gz → 7.7.0__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.6.13 → gam7-7.7.0}/PKG-INFO +1 -1
- {gam7-7.6.13 → gam7-7.7.0}/src/GamCommands.txt +9 -17
- {gam7-7.6.13 → gam7-7.7.0}/src/GamUpdate.txt +24 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/__init__.py +69 -102
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glclargs.py +0 -1
- gam7-7.7.0/wiki/Administrators.md +1471 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/GamUpdates.md +13 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Copy-Move.md +13 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Files-Display.md +6 -1
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +1 -1
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Version-and-Help.md +6 -6
- gam7-7.6.13/wiki/Administrators.md +0 -907
- {gam7-7.6.13 → gam7-7.7.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/actions/decrypt.sh +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/actions/entitlements.plist +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/stale.yml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/workflows/build.yml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.github/workflows/pypi.yml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/.pre-commit-config.yaml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/LICENSE +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/README.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/pyproject.toml +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/.gitignore +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/LICENSE +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/cacerts.pem +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/callgam.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/__main__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/auth.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/client.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/core.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/data.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/http.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/http_core.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/service.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/token_store.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/atom/url.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/cacerts.pem +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/service.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam/six.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam-install.sh +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam-setup.bat +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam.exe.manifest +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam.spec +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/gam.wxs +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/license.rtf +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/requirements-dev.txt +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/requirements.txt +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/setup.cfg +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/setup.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/tools/mkGamRef.py +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/tools/openssl.props +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/src/version_info.txt.in +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/00scratch.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Addresses.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Alert-Center.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Aliases.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Authorization.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Basic-Items.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Calendars-Access.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Calendars-Events.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Calendars.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chat-Bot.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Customer.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Domain-SharedContacts-GAL.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Domains-Verification.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Domains.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Drive-Items.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Groups-Membership.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Groups.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Home.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Licenses.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/List-Items.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/List.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Organizational-Units.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Other-Resources.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Permission-Matches.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/README.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Rclone.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Reports.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Reseller.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Resources.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Schemas.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Scripts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Send-Email.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Shared-Drives.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Sites.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Tag-Replace.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Todrive.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Calendars.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Chat.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Contacts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Forms.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Meet.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Photo.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Tasks.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-Tokens.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users-YouTube.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Users.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/_Sidebar.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/gam.cfg.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Home.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Printers.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.6.13 → gam7-7.7.0}/wiki/l-_Footer.md +0 -0
|
@@ -1461,16 +1461,21 @@ gam <UserTypeEntity> update serviceaccount (scope|scopes <APIScopeURLList>)*
|
|
|
1461
1461
|
gam print privileges [todrive <ToDriveAttribute>*]
|
|
1462
1462
|
gam show privileges
|
|
1463
1463
|
|
|
1464
|
+
<Privilege> ::= <String>
|
|
1465
|
+
<PrivilegeList> ::= "<Privilege>(,<Privilege)*"
|
|
1464
1466
|
<RoleAssignmentID> ::= <String>
|
|
1465
1467
|
<RoleItem> ::= id:<String>|uid:<string>|<String>
|
|
1466
1468
|
|
|
1467
|
-
gam create adminrole <String>
|
|
1468
|
-
|
|
1469
|
+
gam create adminrole <String> [description <String>]
|
|
1470
|
+
privileges all|all_ou|<PrivilegesList>|(select <FileSelector>|<CSVFileSelector>)
|
|
1471
|
+
gam update adminrole <RoleItem> [name <String>] [description <String>]
|
|
1472
|
+
[privileges all|all_ou|<PrivilegesList>|(select <FileSelector>|<CSVFileSelector>)]
|
|
1469
1473
|
gam delete adminrole <RoleItem>
|
|
1470
1474
|
gam info adminrole <RoleItem> [privileges]
|
|
1471
1475
|
gam print adminroles|roles [todrive <ToDriveAttribute>*]
|
|
1472
|
-
[privileges] [oneitemperrow]
|
|
1473
|
-
gam show adminroles|roles
|
|
1476
|
+
[role <RoleItem>] [privileges] [oneitemperrow]
|
|
1477
|
+
gam show adminroles|roles
|
|
1478
|
+
[role <RoleItem>] [privileges]
|
|
1474
1479
|
|
|
1475
1480
|
gam create|add admin <EmailAddress>|<UniqueID> <RoleItem> customer|(org_unit <OrgUnitItem>)
|
|
1476
1481
|
[condition securitygroup|nonsecuritygroup]
|
|
@@ -3540,19 +3545,6 @@ gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
|
|
|
3540
3545
|
[fields <ContactFieldNameList>]
|
|
3541
3546
|
[formatjson [quotechar <Character>]]
|
|
3542
3547
|
|
|
3543
|
-
vgam info gal <ContactEntity>
|
|
3544
|
-
[basic|full]
|
|
3545
|
-
[fields <ContactFieldNameList>]
|
|
3546
|
-
[formatjson]
|
|
3547
|
-
gam show gal <ContactSelection>
|
|
3548
|
-
[basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
3549
|
-
[fields <ContactFieldNameList>]
|
|
3550
|
-
[formatjson]
|
|
3551
|
-
gam print gal [todrive <ToDriveAttribute>*] <ContactSelection>
|
|
3552
|
-
[basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
3553
|
-
[fields <ContactFieldNameList>]
|
|
3554
|
-
[formatjson [quotechar <Character>]]
|
|
3555
|
-
|
|
3556
3548
|
# Domain - People Contacts and Profiles
|
|
3557
3549
|
|
|
3558
3550
|
<PeopleSourceName> ::=
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
7.07.00
|
|
2
|
+
As of mid-October 2024, Google deprecated the API that retrieved the Global Address List.
|
|
3
|
+
|
|
4
|
+
The following commands have been eliminated.
|
|
5
|
+
```
|
|
6
|
+
gam info gal
|
|
7
|
+
gam print gal
|
|
8
|
+
gam show gal
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
These commands are a work-around for `gam print gal`.
|
|
12
|
+
```
|
|
13
|
+
gam config csv_output_row_filter "includeInGlobalAddressList:boolean:true" redirect csv ./UserGAL.csv print users fields name,gal
|
|
14
|
+
gam config csv_output_row_filter "includeInGlobalAddressList:boolean:true" batch_size 25 redirect csv ./GroupGAL.csv print groups fields name,gal
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
7.06.14
|
|
18
|
+
|
|
19
|
+
Updated `gam create|update adminrole` to allow specifying a collection of privileges
|
|
20
|
+
with `privileges select <FileSelector>|<CSVFileSelector>` which makes copying roles much simpler.
|
|
21
|
+
|
|
22
|
+
Added option `role <RoleItem>` to `gam print|show adminroles` to allow display of information
|
|
23
|
+
for a specific role.
|
|
24
|
+
|
|
1
25
|
7.06.13
|
|
2
26
|
|
|
3
27
|
Updated `gam print group-members ... recursive` and `gam print cigroup-members ... recursive`
|
|
@@ -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.
|
|
28
|
+
__version__ = '7.07.00'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -5655,8 +5655,8 @@ def getGDataUserCredentials(api, user, i, count):
|
|
|
5655
5655
|
handleOAuthTokenError(e, True, True, i, count)
|
|
5656
5656
|
return (userEmail, None)
|
|
5657
5657
|
|
|
5658
|
-
def getContactsObject(
|
|
5659
|
-
contactsObject = initGDataObject(gdata.apps.contacts.service.ContactsService(contactFeed=
|
|
5658
|
+
def getContactsObject():
|
|
5659
|
+
contactsObject = initGDataObject(gdata.apps.contacts.service.ContactsService(contactFeed=True),
|
|
5660
5660
|
API.CONTACTS)
|
|
5661
5661
|
return (GC.Values[GC.DOMAIN], contactsObject)
|
|
5662
5662
|
|
|
@@ -16497,8 +16497,10 @@ def getRoleId():
|
|
|
16497
16497
|
invalidChoiceExit(role, GM.Globals[GM.MAP_ROLE_NAME_TO_ID], True)
|
|
16498
16498
|
return (role, roleId)
|
|
16499
16499
|
|
|
16500
|
-
# gam create adminrole <String>
|
|
16501
|
-
#
|
|
16500
|
+
# gam create adminrole <String> [description <String>]
|
|
16501
|
+
# privileges all|all_ou|<PrivilegesList>|(select <FileSelector>|<CSVFileSelector>)
|
|
16502
|
+
# gam update adminrole <RoleItem> [name <String>] [description <String>]
|
|
16503
|
+
# [privileges all|all_ou|<PrivilegesList>|(select <FileSelector>|<CSVFileSelector>)]
|
|
16502
16504
|
def doCreateUpdateAdminRoles():
|
|
16503
16505
|
def expandChildPrivileges(privilege):
|
|
16504
16506
|
for childPrivilege in privilege.get('childPrivileges', []):
|
|
@@ -16529,8 +16531,12 @@ def doCreateUpdateAdminRoles():
|
|
|
16529
16531
|
elif privs == 'ALL_OU':
|
|
16530
16532
|
body['rolePrivileges'] = [{'privilegeName': p, 'serviceId': v} for p, v in ouPrivileges.items()]
|
|
16531
16533
|
else:
|
|
16534
|
+
if privs == 'SELECT':
|
|
16535
|
+
privsList = [p.upper() for p in getEntityList(Cmd.OB_PRIVILEGE_LIST)]
|
|
16536
|
+
else:
|
|
16537
|
+
privsList = privs.replace(',', ' ').split()
|
|
16532
16538
|
body.setdefault('rolePrivileges', [])
|
|
16533
|
-
for p in
|
|
16539
|
+
for p in privsList:
|
|
16534
16540
|
if p in allPrivileges:
|
|
16535
16541
|
body['rolePrivileges'].append({'privilegeName': p, 'serviceId': allPrivileges[p]})
|
|
16536
16542
|
elif p in ouPrivileges:
|
|
@@ -16540,6 +16546,8 @@ def doCreateUpdateAdminRoles():
|
|
|
16540
16546
|
elif ':' in p:
|
|
16541
16547
|
priv, serv = p.split(':')
|
|
16542
16548
|
body['rolePrivileges'].append({'privilegeName': priv, 'serviceId': serv.lower()})
|
|
16549
|
+
elif p == 'SUPPORT':
|
|
16550
|
+
pass
|
|
16543
16551
|
else:
|
|
16544
16552
|
invalidChoiceExit(p, list(allPrivileges.keys())+list(ouPrivileges.keys())+list(childPrivileges.keys()), True)
|
|
16545
16553
|
elif myarg == 'description':
|
|
@@ -16557,12 +16565,12 @@ def doCreateUpdateAdminRoles():
|
|
|
16557
16565
|
customer=GC.Values[GC.CUSTOMER_ID], body=body, fields='roleId,roleName')
|
|
16558
16566
|
else:
|
|
16559
16567
|
result = callGAPI(cd.roles(), 'patch',
|
|
16560
|
-
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION],
|
|
16568
|
+
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION, GAPI.CONFLICT],
|
|
16561
16569
|
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, body=body, fields='roleId,roleName')
|
|
16562
16570
|
entityActionPerformed([Ent.ADMIN_ROLE, f"{result['roleName']}({result['roleId']})"])
|
|
16563
16571
|
except GAPI.duplicate as e:
|
|
16564
16572
|
entityActionFailedWarning([Ent.ADMIN_ROLE, f"{body['roleName']}"], str(e))
|
|
16565
|
-
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
|
16573
|
+
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition, GAPI.conflict) as e:
|
|
16566
16574
|
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
|
16567
16575
|
except (GAPI.badRequest, GAPI.customerNotFound):
|
|
16568
16576
|
accessErrorExit(cd)
|
|
@@ -16605,61 +16613,53 @@ def _showAdminRole(role, i=0, count=0):
|
|
|
16605
16613
|
Ind.Decrement()
|
|
16606
16614
|
|
|
16607
16615
|
# gam info adminrole <RoleItem> [privileges]
|
|
16608
|
-
def doInfoAdminRole():
|
|
16609
|
-
cd = buildGAPIObject(API.DIRECTORY)
|
|
16610
|
-
fieldsList = PRINT_ADMIN_ROLES_FIELDS[:]
|
|
16611
|
-
_, roleId = getRoleId()
|
|
16612
|
-
while Cmd.ArgumentsRemaining():
|
|
16613
|
-
myarg = getArgument()
|
|
16614
|
-
if myarg == 'privileges':
|
|
16615
|
-
fieldsList.append('rolePrivileges')
|
|
16616
|
-
else:
|
|
16617
|
-
unknownArgumentExit()
|
|
16618
|
-
fields = getFieldsFromFieldsList(fieldsList)
|
|
16619
|
-
try:
|
|
16620
|
-
role = callGAPI(cd.roles(), 'get',
|
|
16621
|
-
throwReasons=[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.FAILED_PRECONDITION,
|
|
16622
|
-
GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND],
|
|
16623
|
-
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields=fields)
|
|
16624
|
-
role.setdefault('isSuperAdminRole', False)
|
|
16625
|
-
role.setdefault('isSystemRole', False)
|
|
16626
|
-
_showAdminRole(role)
|
|
16627
|
-
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
|
16628
|
-
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
|
16629
|
-
except (GAPI.badRequest, GAPI.customerNotFound):
|
|
16630
|
-
accessErrorExit(cd)
|
|
16631
|
-
|
|
16632
16616
|
# gam print adminroles|roles [todrive <ToDriveAttribute>*]
|
|
16633
|
-
# [privileges] [oneitemperrow]
|
|
16634
|
-
# gam show adminroles|roles
|
|
16635
|
-
|
|
16617
|
+
# [role <RoleItem>] [privileges] [oneitemperrow]
|
|
16618
|
+
# gam show adminroles|roles
|
|
16619
|
+
# [role <RoleItem>] [privileges]
|
|
16620
|
+
def doInfoPrintShowAdminRoles():
|
|
16636
16621
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
16637
16622
|
fieldsList = PRINT_ADMIN_ROLES_FIELDS[:]
|
|
16638
16623
|
csvPF = CSVPrintFile(fieldsList, PRINT_ADMIN_ROLES_FIELDS) if Act.csvFormat() else None
|
|
16639
16624
|
oneItemPerRow = False
|
|
16625
|
+
if Act.Get() != Act.INFO:
|
|
16626
|
+
roleId = None
|
|
16627
|
+
else:
|
|
16628
|
+
_, roleId = getRoleId()
|
|
16640
16629
|
while Cmd.ArgumentsRemaining():
|
|
16641
16630
|
myarg = getArgument()
|
|
16642
16631
|
if csvPF and myarg == 'todrive':
|
|
16643
16632
|
csvPF.GetTodriveParameters()
|
|
16633
|
+
elif roleId is None and myarg == 'role':
|
|
16634
|
+
_, roleId = getRoleId()
|
|
16644
16635
|
elif myarg == 'privileges':
|
|
16645
16636
|
fieldsList.append('rolePrivileges')
|
|
16646
16637
|
elif myarg == 'oneitemperrow':
|
|
16647
16638
|
oneItemPerRow = True
|
|
16648
16639
|
else:
|
|
16649
16640
|
unknownArgumentExit()
|
|
16650
|
-
if csvPF:
|
|
16641
|
+
if csvPF and 'rolePrivileges' in fieldsList:
|
|
16651
16642
|
if not oneItemPerRow:
|
|
16652
16643
|
csvPF.AddTitles(['rolePrivileges'])
|
|
16653
16644
|
else:
|
|
16654
16645
|
csvPF.AddTitles(['privilegeName', 'serviceId'])
|
|
16655
|
-
fields = getItemFieldsFromFieldsList('items', fieldsList)
|
|
16656
|
-
printGettingAllAccountEntities(Ent.ADMIN_ROLE)
|
|
16657
16646
|
try:
|
|
16658
|
-
|
|
16659
|
-
|
|
16660
|
-
|
|
16661
|
-
|
|
16662
|
-
|
|
16647
|
+
if roleId is None:
|
|
16648
|
+
fields = getItemFieldsFromFieldsList('items', fieldsList)
|
|
16649
|
+
printGettingAllAccountEntities(Ent.ADMIN_ROLE)
|
|
16650
|
+
roles = callGAPIpages(cd.roles(), 'list', 'items',
|
|
16651
|
+
pageMessage=getPageMessage(),
|
|
16652
|
+
throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN],
|
|
16653
|
+
customer=GC.Values[GC.CUSTOMER_ID], fields=fields)
|
|
16654
|
+
else:
|
|
16655
|
+
fields = getFieldsFromFieldsList(fieldsList)
|
|
16656
|
+
roles = [callGAPI(cd.roles(), 'get',
|
|
16657
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.FAILED_PRECONDITION,
|
|
16658
|
+
GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND],
|
|
16659
|
+
customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields=fields)]
|
|
16660
|
+
except (GAPI.notFound, GAPI.forbidden, GAPI.failedPrecondition) as e:
|
|
16661
|
+
entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e))
|
|
16662
|
+
except (GAPI.badRequest, GAPI.customerNotFound):
|
|
16663
16663
|
accessErrorExit(cd)
|
|
16664
16664
|
for role in roles:
|
|
16665
16665
|
role.setdefault('isSuperAdminRole', False)
|
|
@@ -19996,7 +19996,9 @@ def dedupEmailAddressMatches(contactsManager, emailMatchType, fields):
|
|
|
19996
19996
|
fields[CONTACT_EMAILS] = savedAddresses
|
|
19997
19997
|
return updateRequired
|
|
19998
19998
|
|
|
19999
|
-
|
|
19999
|
+
# gam create contact <ContactAttribute>+
|
|
20000
|
+
# [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*))| returnidonly]
|
|
20001
|
+
def doCreateDomainContact():
|
|
20000
20002
|
entityType = Ent.DOMAIN
|
|
20001
20003
|
contactsManager = ContactsManager()
|
|
20002
20004
|
parameters = {'csvPF': None, 'titles': ['Domain', CONTACT_ID], 'addCSVData': {}, 'returnIdOnly': False}
|
|
@@ -20007,7 +20009,7 @@ def _createContact():
|
|
|
20007
20009
|
csvPF.AddTitles(sorted(addCSVData.keys()))
|
|
20008
20010
|
returnIdOnly = parameters['returnIdOnly']
|
|
20009
20011
|
contactEntry = contactsManager.FieldsToContact(fields)
|
|
20010
|
-
user, contactsObject = getContactsObject(
|
|
20012
|
+
user, contactsObject = getContactsObject()
|
|
20011
20013
|
try:
|
|
20012
20014
|
contact = callGData(contactsObject, 'CreateContact',
|
|
20013
20015
|
throwErrors=[GDATA.BAD_REQUEST, GDATA.SERVICE_NOT_APPLICABLE, GDATA.FORBIDDEN],
|
|
@@ -20032,11 +20034,6 @@ def _createContact():
|
|
|
20032
20034
|
if csvPF:
|
|
20033
20035
|
csvPF.writeCSVfile('Contacts')
|
|
20034
20036
|
|
|
20035
|
-
# gam create contact <ContactAttribute>+
|
|
20036
|
-
# [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*))| returnidonly]
|
|
20037
|
-
def doCreateDomainContact():
|
|
20038
|
-
_createContact()
|
|
20039
|
-
|
|
20040
20037
|
def _clearUpdateContacts(updateContacts):
|
|
20041
20038
|
entityType = Ent.DOMAIN
|
|
20042
20039
|
contactsManager = ContactsManager()
|
|
@@ -20058,7 +20055,7 @@ def _clearUpdateContacts(updateContacts):
|
|
|
20058
20055
|
unknownArgumentExit()
|
|
20059
20056
|
if not contactClear['emailClearPattern']:
|
|
20060
20057
|
missingArgumentExit('emailclearpattern')
|
|
20061
|
-
user, contactsObject = getContactsObject(
|
|
20058
|
+
user, contactsObject = getContactsObject()
|
|
20062
20059
|
if queriedContacts:
|
|
20063
20060
|
entityList = queryContacts(contactsObject, contactQuery)
|
|
20064
20061
|
if entityList is None:
|
|
@@ -20129,7 +20126,8 @@ def doClearDomainContacts():
|
|
|
20129
20126
|
def doUpdateDomainContacts():
|
|
20130
20127
|
_clearUpdateContacts(True)
|
|
20131
20128
|
|
|
20132
|
-
|
|
20129
|
+
# gam dedup contacts <ContactEntity>|<ContactSelection> [matchType [<Boolean>]]
|
|
20130
|
+
def doDedupDomainContacts():
|
|
20133
20131
|
entityType = Ent.DOMAIN
|
|
20134
20132
|
contactsManager = ContactsManager()
|
|
20135
20133
|
contactQuery = _initContactQueryAttributes()
|
|
@@ -20140,7 +20138,7 @@ def _dedupContacts():
|
|
|
20140
20138
|
emailMatchType = getBoolean()
|
|
20141
20139
|
else:
|
|
20142
20140
|
_getContactQueryAttributes(contactQuery, myarg, -1, False)
|
|
20143
|
-
user, contactsObject = getContactsObject(
|
|
20141
|
+
user, contactsObject = getContactsObject()
|
|
20144
20142
|
contacts = queryContacts(contactsObject, contactQuery)
|
|
20145
20143
|
if contacts is None:
|
|
20146
20144
|
return
|
|
@@ -20180,15 +20178,12 @@ def _dedupContacts():
|
|
|
20180
20178
|
break
|
|
20181
20179
|
Ind.Decrement()
|
|
20182
20180
|
|
|
20183
|
-
# gam
|
|
20184
|
-
def
|
|
20185
|
-
_dedupContacts()
|
|
20186
|
-
|
|
20187
|
-
def _deleteContacts():
|
|
20181
|
+
# gam delete contacts <ContactEntity>|<ContactSelection>
|
|
20182
|
+
def doDeleteDomainContacts():
|
|
20188
20183
|
entityType = Ent.DOMAIN
|
|
20189
20184
|
contactsManager = ContactsManager()
|
|
20190
20185
|
entityList, contactQuery, queriedContacts = _getContactEntityList(-1, False)
|
|
20191
|
-
user, contactsObject = getContactsObject(
|
|
20186
|
+
user, contactsObject = getContactsObject()
|
|
20192
20187
|
if queriedContacts:
|
|
20193
20188
|
entityList = queryContacts(contactsObject, contactQuery)
|
|
20194
20189
|
if entityList is None:
|
|
@@ -20228,10 +20223,6 @@ def _deleteContacts():
|
|
|
20228
20223
|
break
|
|
20229
20224
|
Ind.Decrement()
|
|
20230
20225
|
|
|
20231
|
-
# gam delete contacts <ContactEntity>|<ContactSelection>
|
|
20232
|
-
def doDeleteDomainContacts():
|
|
20233
|
-
_deleteContacts()
|
|
20234
|
-
|
|
20235
20226
|
CONTACT_TIME_OBJECTS = {CONTACT_UPDATED}
|
|
20236
20227
|
CONTACT_FIELDS_WITH_CRS_NLS = {CONTACT_NOTES, CONTACT_BILLING_INFORMATION}
|
|
20237
20228
|
|
|
@@ -20299,7 +20290,10 @@ def _getContactFieldsList(contactsManager, displayFieldsList):
|
|
|
20299
20290
|
else:
|
|
20300
20291
|
invalidChoiceExit(field, contactsManager.CONTACT_ARGUMENT_TO_PROPERTY_MAP, True)
|
|
20301
20292
|
|
|
20302
|
-
|
|
20293
|
+
# gam info contacts <ContactEntity>
|
|
20294
|
+
# [basic|full]
|
|
20295
|
+
# [fields <ContactFieldNameList>] [formatjson]
|
|
20296
|
+
def doInfoDomainContacts():
|
|
20303
20297
|
entityType = Ent.DOMAIN
|
|
20304
20298
|
contactsManager = ContactsManager()
|
|
20305
20299
|
entityList = getEntityList(Cmd.OB_CONTACT_ENTITY)
|
|
@@ -20314,7 +20308,7 @@ def _infoContacts(contactFeed):
|
|
|
20314
20308
|
_getContactFieldsList(contactsManager, displayFieldsList)
|
|
20315
20309
|
else:
|
|
20316
20310
|
FJQC.GetFormatJSON(myarg)
|
|
20317
|
-
user, contactsObject = getContactsObject(
|
|
20311
|
+
user, contactsObject = getContactsObject()
|
|
20318
20312
|
j = 0
|
|
20319
20313
|
jcount = len(entityList)
|
|
20320
20314
|
if not FJQC.formatJSON:
|
|
@@ -20342,19 +20336,13 @@ def _infoContacts(contactFeed):
|
|
|
20342
20336
|
break
|
|
20343
20337
|
Ind.Decrement()
|
|
20344
20338
|
|
|
20345
|
-
# gam
|
|
20346
|
-
# [basic|full]
|
|
20347
|
-
# [fields <ContactFieldNameList>] [formatjson]
|
|
20348
|
-
|
|
20349
|
-
|
|
20350
|
-
|
|
20351
|
-
# gam info gal <ContactEntity>
|
|
20352
|
-
# [basic|full]
|
|
20339
|
+
# gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
|
|
20340
|
+
# [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
20341
|
+
# [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
|
|
20342
|
+
# gam show contacts <ContactSelection>
|
|
20343
|
+
# [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
20353
20344
|
# [fields <ContactFieldNameList>] [formatjson]
|
|
20354
|
-
def
|
|
20355
|
-
_infoContacts(False)
|
|
20356
|
-
|
|
20357
|
-
def _printShowContacts(contactFeed):
|
|
20345
|
+
def doPrintShowDomainContacts():
|
|
20358
20346
|
entityType = Ent.DOMAIN
|
|
20359
20347
|
entityTypeName = Ent.Singular(entityType)
|
|
20360
20348
|
contactsManager = ContactsManager()
|
|
@@ -20380,7 +20368,7 @@ def _printShowContacts(contactFeed):
|
|
|
20380
20368
|
pass
|
|
20381
20369
|
else:
|
|
20382
20370
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
20383
|
-
user, contactsObject = getContactsObject(
|
|
20371
|
+
user, contactsObject = getContactsObject()
|
|
20384
20372
|
contacts = queryContacts(contactsObject, contactQuery)
|
|
20385
20373
|
if countsOnly:
|
|
20386
20374
|
jcount = countLocalContactSelects(contactsManager, contacts, contactQuery)
|
|
@@ -20466,24 +20454,6 @@ def _printShowContacts(contactFeed):
|
|
|
20466
20454
|
if csvPF:
|
|
20467
20455
|
csvPF.writeCSVfile(CSVTitle)
|
|
20468
20456
|
|
|
20469
|
-
# gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
|
|
20470
|
-
# [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
20471
|
-
# [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
|
|
20472
|
-
# gam show contacts <ContactSelection>
|
|
20473
|
-
# [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
20474
|
-
# [fields <ContactFieldNameList>] [formatjson]
|
|
20475
|
-
def doPrintShowDomainContacts():
|
|
20476
|
-
_printShowContacts(True)
|
|
20477
|
-
|
|
20478
|
-
# gam print gal [todrive <ToDriveAttribute>*] <ContactSelection>
|
|
20479
|
-
# [basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
20480
|
-
# [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
|
|
20481
|
-
# gam show gal <ContactSelection>
|
|
20482
|
-
# [basic|full|countsonly] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
|
20483
|
-
# [fields <ContactFieldNameList>] [formatjson]
|
|
20484
|
-
def doPrintShowGAL():
|
|
20485
|
-
_printShowContacts(False)
|
|
20486
|
-
|
|
20487
20457
|
# Prople commands utilities
|
|
20488
20458
|
#
|
|
20489
20459
|
def normalizePeopleResourceName(resourceName):
|
|
@@ -75613,7 +75583,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75613
75583
|
),
|
|
75614
75584
|
'info':
|
|
75615
75585
|
(Act.INFO,
|
|
75616
|
-
{Cmd.ARG_ADMINROLE:
|
|
75586
|
+
{Cmd.ARG_ADMINROLE: doInfoPrintShowAdminRoles,
|
|
75617
75587
|
Cmd.ARG_ALERT: doInfoAlert,
|
|
75618
75588
|
Cmd.ARG_ALIAS: doInfoAliases,
|
|
75619
75589
|
Cmd.ARG_BUILDING: doInfoBuilding,
|
|
@@ -75645,7 +75615,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75645
75615
|
Cmd.ARG_DRIVEFILEACL: doInfoDriveFileACLs,
|
|
75646
75616
|
Cmd.ARG_DRIVELABEL: doInfoDriveLabels,
|
|
75647
75617
|
Cmd.ARG_INSTANCE: doInfoInstance,
|
|
75648
|
-
Cmd.ARG_GAL: doInfoGAL,
|
|
75649
75618
|
Cmd.ARG_GROUP: doInfoGroups,
|
|
75650
75619
|
Cmd.ARG_GROUPMEMBERS: doInfoGroupMembers,
|
|
75651
75620
|
Cmd.ARG_INBOUNDSSOASSIGNMENT: doInfoInboundSSOAssignment,
|
|
@@ -75688,7 +75657,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75688
75657
|
'print':
|
|
75689
75658
|
(Act.PRINT,
|
|
75690
75659
|
{Cmd.ARG_ADDRESSES: doPrintAddresses,
|
|
75691
|
-
Cmd.ARG_ADMINROLE:
|
|
75660
|
+
Cmd.ARG_ADMINROLE: doInfoPrintShowAdminRoles,
|
|
75692
75661
|
Cmd.ARG_ADMIN: doPrintShowAdmins,
|
|
75693
75662
|
Cmd.ARG_ALERT: doPrintShowAlerts,
|
|
75694
75663
|
Cmd.ARG_ALERTFEEDBACK: doPrintShowAlertFeedback,
|
|
@@ -75740,7 +75709,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75740
75709
|
Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels,
|
|
75741
75710
|
Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions,
|
|
75742
75711
|
Cmd.ARG_FEATURE: doPrintShowFeatures,
|
|
75743
|
-
Cmd.ARG_GAL: doPrintShowGAL,
|
|
75744
75712
|
Cmd.ARG_GROUP: doPrintGroups,
|
|
75745
75713
|
Cmd.ARG_GROUPMEMBERS: doPrintGroupMembers,
|
|
75746
75714
|
Cmd.ARG_GROUPTREE: doPrintShowGroupTree,
|
|
@@ -75821,7 +75789,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75821
75789
|
),
|
|
75822
75790
|
'show':
|
|
75823
75791
|
(Act.SHOW,
|
|
75824
|
-
{Cmd.ARG_ADMINROLE:
|
|
75792
|
+
{Cmd.ARG_ADMINROLE: doInfoPrintShowAdminRoles,
|
|
75825
75793
|
Cmd.ARG_ADMIN: doPrintShowAdmins,
|
|
75826
75794
|
Cmd.ARG_ALERT: doPrintShowAlerts,
|
|
75827
75795
|
Cmd.ARG_ALERTFEEDBACK: doPrintShowAlertFeedback,
|
|
@@ -75858,7 +75826,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75858
75826
|
Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels,
|
|
75859
75827
|
Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions,
|
|
75860
75828
|
Cmd.ARG_FEATURE: doPrintShowFeatures,
|
|
75861
|
-
Cmd.ARG_GAL: doPrintShowGAL,
|
|
75862
75829
|
Cmd.ARG_GROUPMEMBERS: doShowGroupMembers,
|
|
75863
75830
|
Cmd.ARG_GROUPTREE: doPrintShowGroupTree,
|
|
75864
75831
|
Cmd.ARG_GUARDIAN: doPrintShowGuardians,
|
|
@@ -616,7 +616,6 @@ class GamCLArgs():
|
|
|
616
616
|
ARG_FORWARDS = 'forwards'
|
|
617
617
|
ARG_FORWARDINGADDRESS = 'forwardingaddress'
|
|
618
618
|
ARG_FORWARDINGADDRESSES = 'forwardingaddresses'
|
|
619
|
-
ARG_GAL = 'gal'
|
|
620
619
|
ARG_GCPFOLDER = 'gcpfolder'
|
|
621
620
|
ARG_GCPSERVICEACCOUNT = 'gcpserviceaccount'
|
|
622
621
|
ARG_GMAIL = 'gmail'
|