gam7 7.6.12__tar.gz → 7.6.13__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.12 → gam7-7.6.13}/PKG-INFO +1 -1
- {gam7-7.6.12 → gam7-7.6.13}/src/GamUpdate.txt +5 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/__init__.py +96 -34
- {gam7-7.6.12 → gam7-7.6.13}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/ISSUE_TEMPLATE.txt +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/actions/decrypt.sh +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/actions/entitlements.plist +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/actions/package_exclusions.txt +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/stale.yml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/workflows/build.yml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/workflows/codeql-analysis.yml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/workflows/get-cacerts.yml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/workflows/pushwiki.yml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.github/workflows/pypi.yml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/.pre-commit-config.yaml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/LICENSE +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/README.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/pyproject.toml +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/.gitignore +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/GamCommands.txt +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/LICENSE +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/cacerts.pem +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/callgam.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/__main__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/auth.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/client.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/core.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/data.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/http.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/http_core.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/http_interface.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/mock_http.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/mock_http_core.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/mock_service.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/service.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/token_store.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/atom/url.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/cacerts.pem +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/cbcm-v1.1beta1.json +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/contactdelegation-v1.json +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/datastudio-v1.json +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glaction.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glapi.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glcfg.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glclargs.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glentity.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glgapi.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glgdata.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glglobals.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glindent.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glmsgs.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glskus.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/gluprop.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/glverlibs.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gamlib/yubikey.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/alt/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/alt/app_engine.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/alt/appengine.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/apps/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/apps/audit/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/apps/audit/service.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/apps/contacts/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/apps/contacts/service.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/apps/service.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/service.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/gdata/urlfetch.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/_auth.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/_helpers.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/channel.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/discovery.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/errors.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/http.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/mimeparse.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/model.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/schema.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/googleapiclient/version.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/iso8601/__init__.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/iso8601/iso8601.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/meet-v2beta.json +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/serviceaccountlookup-v1.json +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam/six.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam-install.sh +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam-setup.bat +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam.exe.manifest +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam.spec +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/gam.wxs +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/license.rtf +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/requirements-dev.txt +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/requirements.txt +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/setup.cfg +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/setup.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/tools/a_atleast_b.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/tools/gen-wix-xml-filelist.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/tools/mkGamRef.py +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/tools/openssl.props +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/src/version_info.txt.in +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/00scratch.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Addresses.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Administrators.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Alert-Center.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Aliases.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Authorization.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/BNF-Syntax.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Basic-Items.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Bulk-Processing.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/CSV-Input-Filtering.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/CSV-Output-Filtering.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/CSV-Special-Characters.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Calendars-Access.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Calendars-Events.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Calendars.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chat-Bot.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-AUE-Counts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Installed-Apps.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Policies.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Printers.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Profile-Management.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Version-Counts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Chrome-Version-History.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/ChromeOS-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Classroom-Courses.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Classroom-Guardians.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Classroom-Invitations.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Classroom-Membership.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Cloud-Channel.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Cloud-Identity-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Cloud-Identity-Groups.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Cloud-Identity-Policies.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Cloud-Storage.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Collections-of-Items.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Collections-of-Users.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Command-Line-Parsing.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Command-Logging-Progress.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Context-Aware-Access-Levels.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Customer.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Domain-People-Contacts-Profiles.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Domain-SharedContacts-GAL.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Domains-Verification.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Domains.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Downloads-Installs.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Drive-File-Selection.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Drive-Items.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Drive-REST-API-v3.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Email-Audit-Monitor.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Find-File-Owner.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/GAM-Public-Chat-Room.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/GAM-Return-Codes.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/GAM7-on-Android-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/GamUpdates.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Google-Data-Transfers.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Google-Network-Addresses.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Groups-Membership.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Groups.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/HTTPS-Proxy.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Home.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/How-to-Install-GAM7.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/How-to-Uninstall-GAM7.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/How-to-Update-GAM7.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Inbound-SSO.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Install-GAM-as-Python-Library.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Licenses.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/List-Items.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/List.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Mobile-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Organizational-Units.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Other-Resources.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Permission-Matches.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Python-Regular-Expressions.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/README.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Rclone.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Reports.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Reseller.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Resources.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/SSL-Root-CA-Certificates.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Schemas.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Scripts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Send-Email.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Shared-Drives.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Sites.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Tag-Replace.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Todrive.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Unmanaged-Accounts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Upgrade-Benefits.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Analytics-Admin.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Application-Specific-Passwords.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Backup-Verification-Codes.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Calendars-Access.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Calendars-Events.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Calendars.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Chat.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Classification-Labels.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Classroom-Profile.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Contacts-Delegates.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Contacts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Deprovision.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Activity-Settings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Cleanup.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Comments.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Copy-Move.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Files-Display.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Files-Manage.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Orphans.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Ownership.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Permissions.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Query.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Revisions.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Shortcuts.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Drive-Transfer.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Forms.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-CSE.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Delegates.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Filters.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Forwarding.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Labels.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Messages-Threads.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Profile.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-S-MIME.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Gmail-Settings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Group-Membership.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Keep-Notes.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Looker-Studio.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Meet.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-People-Contacts-Profiles.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Photo.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Profile-Photo.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Profile-Sharing.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Shared-Drives.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Signout-Turnoff2SV.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Spreadsheets.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Tasks.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-Tokens.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users-YouTube.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Users.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Vault-Takeout.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/Version-and-Help.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/_Sidebar.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/gam.cfg.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-AdminSettingsExamples.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Android-Installation.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-BulkOperations.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-CalendarExamples.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Chat-Bot.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Chrome-Browser-Management.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Chrome-OS-Installation.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Chrome-Policy-Settings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Cloud-Identity-Groups.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Calendars.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Definitions.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Drive.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Email.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Groups.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Command-Reference-Users.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Context-Aware-Access-Levels.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-CreatingClientSecretsFile.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Custom-Schemas.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Data-Transfers.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-DomainVerification.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-ExamplesAccountAuditing.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-ExamplesCSV.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-ExamplesEmailSettings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-ExamplesOrganizations.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM-Discussion-Group.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM-options-files.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM3CSVListings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM3DirectoryCommands.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM3GroupSettings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GAM7-FAQ.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-GoogleDriveManagement.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Home.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Inbound-SSO-Settings.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-LicenseExamples.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Managing-Admins.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Managing-Devices.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Managing-Google-Classroom.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-OAuthKeyManagement.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Printers.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-ResellerCommands.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-SecurityExamples.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-UnmanagedUsersExamples.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Use-a-Yubikey.md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
- {gam7-7.6.12 → gam7-7.6.13}/wiki/l-_Footer.md +0 -0
|
@@ -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.06.
|
|
28
|
+
__version__ = '7.06.13'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -5981,7 +5981,7 @@ def getCIGroupMemberRoleFixType(member):
|
|
|
5981
5981
|
else:
|
|
5982
5982
|
member['type'] = Ent.TYPE_OTHER
|
|
5983
5983
|
roles = {}
|
|
5984
|
-
memberRoles = member.get('roles', [{'name': Ent.
|
|
5984
|
+
memberRoles = member.get('roles', [{'name': Ent.ROLE_MEMBER}])
|
|
5985
5985
|
for role in memberRoles:
|
|
5986
5986
|
roles[role['name']] = role
|
|
5987
5987
|
for a_role in [Ent.ROLE_OWNER, Ent.ROLE_MANAGER, Ent.ROLE_MEMBER]:
|
|
@@ -6019,7 +6019,7 @@ def getCIGroupTransitiveMemberRoleFixType(groupName, tmember):
|
|
|
6019
6019
|
trole['name'] = Ent.ROLE_MANAGER
|
|
6020
6020
|
memberRoles.append(trole)
|
|
6021
6021
|
else:
|
|
6022
|
-
memberRoles = [{'name': Ent.
|
|
6022
|
+
memberRoles = [{'name': Ent.ROLE_MEMBER}]
|
|
6023
6023
|
roles = {}
|
|
6024
6024
|
for role in memberRoles:
|
|
6025
6025
|
roles[role['name']] = role
|
|
@@ -26478,6 +26478,64 @@ def _getChatMemberEmail(cd, member):
|
|
|
26478
26478
|
_, memberUid = member['groupMember']['name'].split('/')
|
|
26479
26479
|
member['groupMember']['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['group'])
|
|
26480
26480
|
|
|
26481
|
+
def _getChatSpaceMembers(cd, chatSpace, ciGroupName):
|
|
26482
|
+
if chatSpace.startswith('space/'):
|
|
26483
|
+
_, chatSpace = chatSpace.split('/', 1)
|
|
26484
|
+
chatSpace = 'spaces/'+chatSpace
|
|
26485
|
+
kwargsUAA = {'useAdminAccess': True, 'filter': 'member.type != "BOT"'}
|
|
26486
|
+
user, chat, kvList = buildChatServiceObject(API.CHAT_MEMBERSHIPS_ADMIN, _getAdminEmail(), 0, 0, [Ent.CHAT_SPACE, chatSpace], True)
|
|
26487
|
+
memberList = []
|
|
26488
|
+
if not chat:
|
|
26489
|
+
return memberList
|
|
26490
|
+
fields = getItemFieldsFromFieldsList('memberships', [])
|
|
26491
|
+
qfilter = f'{Ent.Singular(Ent.CHAT_SPACE)}: {chatSpace}, {kwargsUAA["filter"]}'
|
|
26492
|
+
try:
|
|
26493
|
+
members = callGAPIpages(chat.spaces().members(), 'list', 'memberships',
|
|
26494
|
+
pageMessage=_getChatPageMessage(Ent.CHAT_MEMBER, user, 0, 0, qfilter),
|
|
26495
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED],
|
|
26496
|
+
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
26497
|
+
parent=chatSpace, fields=fields, pageSize=CHAT_PAGE_SIZE, **kwargsUAA)
|
|
26498
|
+
for member in members:
|
|
26499
|
+
_getChatMemberEmail(cd, member)
|
|
26500
|
+
gmember = {}
|
|
26501
|
+
if 'member' in member:
|
|
26502
|
+
if member['member']['type'] == 'HUMAN':
|
|
26503
|
+
_, memberUid = member['member']['name'].split('/')
|
|
26504
|
+
gmember['type'] = Ent.TYPE_USER
|
|
26505
|
+
email, _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['user'])
|
|
26506
|
+
role = Ent.ROLE_MANAGER if member['role'] == 'ROLE_MANAGER' else Ent.ROLE_MEMBER
|
|
26507
|
+
if not ciGroupName:
|
|
26508
|
+
gmember['id'] = memberUid
|
|
26509
|
+
gmember['email'] = email
|
|
26510
|
+
gmember['role'] = role
|
|
26511
|
+
gmember['status'] = member['state']
|
|
26512
|
+
else:
|
|
26513
|
+
gmember['name'] = f'{ciGroupName}/memberships/{memberUid}'
|
|
26514
|
+
gmember['preferredMemberKey'] = {'id': email}
|
|
26515
|
+
gmember['roles'] = [{'name': role}]
|
|
26516
|
+
gmember['createTime'] = member['createTime']
|
|
26517
|
+
memberList.append(gmember)
|
|
26518
|
+
elif 'groupMember' in member:
|
|
26519
|
+
_, memberUid = member['groupMember']['name'].split('/')
|
|
26520
|
+
gmember['type'] = Ent.TYPE_GROUP
|
|
26521
|
+
role = Ent.ROLE_MANAGER if member['role'] == 'ROLE_MANAGER' else Ent.ROLE_MEMBER
|
|
26522
|
+
email, _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['group'])
|
|
26523
|
+
if not ciGroupName:
|
|
26524
|
+
gmember['id'] = memberUid
|
|
26525
|
+
gmember['email'] = email
|
|
26526
|
+
gmember['role'] = role
|
|
26527
|
+
gmember['status'] = member['state']
|
|
26528
|
+
else:
|
|
26529
|
+
gmember['name'] = f'{ciGroupName}/memberships/{memberUid}'
|
|
26530
|
+
gmember['preferredMemberKey'] = {'id': email}
|
|
26531
|
+
gmember['roles'] = [{'name': role}]
|
|
26532
|
+
gmember['createTime'] = member['createTime']
|
|
26533
|
+
memberList.append(gmember)
|
|
26534
|
+
return memberList
|
|
26535
|
+
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
26536
|
+
exitIfChatNotConfigured(chat, kvList, str(e), 0, 0)
|
|
26537
|
+
return memberList
|
|
26538
|
+
|
|
26481
26539
|
def normalizeUserMember(user, userList):
|
|
26482
26540
|
userList.append(normalizeEmailAddressOrUID(user))
|
|
26483
26541
|
|
|
@@ -34138,15 +34196,18 @@ def getGroupMembers(cd, groupEmail, memberRoles, membersList, membersSet, i, cou
|
|
|
34138
34196
|
|
|
34139
34197
|
printGettingAllEntityItemsForWhom(memberRoles if memberRoles else Ent.ROLE_MANAGER_MEMBER_OWNER, groupEmail, i, count)
|
|
34140
34198
|
validRoles, listRoles, listFields = _getRoleVerification(memberRoles, 'nextPageToken,members(email,id,role,status,type,delivery_settings)')
|
|
34141
|
-
|
|
34142
|
-
|
|
34143
|
-
|
|
34144
|
-
|
|
34145
|
-
|
|
34146
|
-
|
|
34147
|
-
|
|
34148
|
-
|
|
34149
|
-
|
|
34199
|
+
if not groupEmail.startswith('space/'):
|
|
34200
|
+
try:
|
|
34201
|
+
groupMembers = callGAPIpages(cd.members(), 'list', 'members',
|
|
34202
|
+
pageMessage=getPageMessageForWhom(),
|
|
34203
|
+
throwReasons=GAPI.MEMBERS_THROW_REASONS, retryReasons=GAPI.MEMBERS_RETRY_REASONS,
|
|
34204
|
+
includeDerivedMembership=memberOptions[MEMBEROPTION_INCLUDEDERIVEDMEMBERSHIP],
|
|
34205
|
+
groupKey=groupEmail, roles=listRoles, fields=listFields, maxResults=GC.Values[GC.MEMBER_MAX_RESULTS])
|
|
34206
|
+
except (GAPI.groupNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.invalid, GAPI.forbidden, GAPI.serviceNotAvailable):
|
|
34207
|
+
entityUnknownWarning(Ent.GROUP, groupEmail, i, count)
|
|
34208
|
+
return
|
|
34209
|
+
else:
|
|
34210
|
+
groupMembers = _getChatSpaceMembers(cd, groupEmail, '')
|
|
34150
34211
|
checkCategory = memberDisplayOptions['showCategory']
|
|
34151
34212
|
if not memberOptions[MEMBEROPTION_RECURSIVE]:
|
|
34152
34213
|
if memberOptions[MEMBEROPTION_NODUPLICATES]:
|
|
@@ -34170,8 +34231,7 @@ def getGroupMembers(cd, groupEmail, memberRoles, membersList, membersSet, i, cou
|
|
|
34170
34231
|
elif memberOptions[MEMBEROPTION_NODUPLICATES]:
|
|
34171
34232
|
groupMemberList = []
|
|
34172
34233
|
for member in groupMembers:
|
|
34173
|
-
|
|
34174
|
-
if member['type'] != Ent.TYPE_GROUP or namespace:
|
|
34234
|
+
if member['type'] != Ent.TYPE_GROUP:
|
|
34175
34235
|
if ((member['type'] in typesSet and
|
|
34176
34236
|
checkMemberMatch(member, memberOptions) and
|
|
34177
34237
|
_checkMemberRoleIsSuspendedIsArchived(member, validRoles, memberOptions[MEMBEROPTION_ISSUSPENDED], memberOptions[MEMBEROPTION_ISARCHIVED]) and
|
|
@@ -34200,8 +34260,7 @@ def getGroupMembers(cd, groupEmail, memberRoles, membersList, membersSet, i, cou
|
|
|
34200
34260
|
memberOptions, memberDisplayOptions, level+1, typesSet)
|
|
34201
34261
|
else:
|
|
34202
34262
|
for member in groupMembers:
|
|
34203
|
-
|
|
34204
|
-
if member['type'] != Ent.TYPE_GROUP or namespace:
|
|
34263
|
+
if member['type'] != Ent.TYPE_GROUP:
|
|
34205
34264
|
if ((member['type'] in typesSet) and
|
|
34206
34265
|
checkMemberMatch(member, memberOptions) and
|
|
34207
34266
|
_checkMemberRoleIsSuspendedIsArchived(member, validRoles,
|
|
@@ -36253,7 +36312,7 @@ def getCIGroupTransitiveMembers(ci, groupName, membersList, i, count):
|
|
|
36253
36312
|
return True
|
|
36254
36313
|
|
|
36255
36314
|
def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, count,
|
|
36256
|
-
memberOptions, memberDisplayOptions, level, typesSet, groupEmail, kwargs):
|
|
36315
|
+
memberOptions, memberDisplayOptions, level, typesSet, groupEmail, kwargs, cd):
|
|
36257
36316
|
nameToPrint = groupEmail if groupEmail else groupName
|
|
36258
36317
|
printGettingAllEntityItemsForWhom(memberRoles if memberRoles else Ent.ROLE_MANAGER_MEMBER_OWNER, nameToPrint, i, count)
|
|
36259
36318
|
validRoles = _getCIRoleVerification(memberRoles)
|
|
@@ -36266,16 +36325,21 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co
|
|
|
36266
36325
|
if member['type'] in typesSet and checkCIMemberMatch(member, memberOptions):
|
|
36267
36326
|
membersList.append(member)
|
|
36268
36327
|
return
|
|
36269
|
-
|
|
36270
|
-
|
|
36271
|
-
|
|
36272
|
-
|
|
36273
|
-
|
|
36274
|
-
|
|
36275
|
-
|
|
36276
|
-
|
|
36277
|
-
|
|
36278
|
-
|
|
36328
|
+
if not groupEmail.startswith('space/'):
|
|
36329
|
+
try:
|
|
36330
|
+
groupMembers = callGAPIpages(ci.groups().memberships(), 'list', 'memberships',
|
|
36331
|
+
pageMessage=getPageMessageForWhom(),
|
|
36332
|
+
throwReasons=GAPI.CIGROUP_LIST_THROW_REASONS, retryReasons=GAPI.CIGROUP_RETRY_REASONS,
|
|
36333
|
+
parent=groupName, **kwargs)
|
|
36334
|
+
except (GAPI.resourceNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis,
|
|
36335
|
+
GAPI.forbidden, GAPI.badRequest, GAPI.invalid, GAPI.invalidArgument, GAPI.systemError,
|
|
36336
|
+
GAPI.permissionDenied, GAPI.serviceNotAvailable):
|
|
36337
|
+
entityUnknownWarning(Ent.CLOUD_IDENTITY_GROUP, nameToPrint, i, count)
|
|
36338
|
+
return
|
|
36339
|
+
else:
|
|
36340
|
+
if cd is None:
|
|
36341
|
+
cd = buildGAPIObject(API.DIRECTORY)
|
|
36342
|
+
groupMembers = _getChatSpaceMembers(cd, groupEmail, groupName)
|
|
36279
36343
|
checkCategory = memberDisplayOptions['showCategory']
|
|
36280
36344
|
if not memberOptions[MEMBEROPTION_RECURSIVE]:
|
|
36281
36345
|
if memberOptions[MEMBEROPTION_NODUPLICATES]:
|
|
@@ -36300,8 +36364,7 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co
|
|
|
36300
36364
|
for member in groupMembers:
|
|
36301
36365
|
getCIGroupMemberRoleFixType(member)
|
|
36302
36366
|
memberName = member.get('preferredMemberKey', {}).get('id', '')
|
|
36303
|
-
|
|
36304
|
-
if member['type'] != Ent.TYPE_GROUP or namespace:
|
|
36367
|
+
if member['type'] != Ent.TYPE_GROUP:
|
|
36305
36368
|
if (member['type'] in typesSet and
|
|
36306
36369
|
checkCIMemberMatch(member, memberOptions) and
|
|
36307
36370
|
_checkMemberRole(member, validRoles) and
|
|
@@ -36324,13 +36387,12 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co
|
|
|
36324
36387
|
groupMemberList.append((f'groups/{gname}', memberName))
|
|
36325
36388
|
for member in groupMemberList:
|
|
36326
36389
|
getCIGroupMembers(ci, member[0], memberRoles, membersList, membersSet, i, count,
|
|
36327
|
-
memberOptions, memberDisplayOptions, level+1, typesSet, member[1], kwargs)
|
|
36390
|
+
memberOptions, memberDisplayOptions, level+1, typesSet, member[1], kwargs, cd)
|
|
36328
36391
|
else:
|
|
36329
36392
|
for member in groupMembers:
|
|
36330
36393
|
getCIGroupMemberRoleFixType(member)
|
|
36331
36394
|
memberName = member.get('preferredMemberKey', {}).get('id', '')
|
|
36332
|
-
|
|
36333
|
-
if member['type'] != Ent.TYPE_GROUP or namespace:
|
|
36395
|
+
if member['type'] != Ent.TYPE_GROUP:
|
|
36334
36396
|
if (member['type'] in typesSet and
|
|
36335
36397
|
checkCIMemberMatch(member, memberOptions) and
|
|
36336
36398
|
_checkMemberRole(member, validRoles) and
|
|
@@ -36347,7 +36409,7 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co
|
|
|
36347
36409
|
membersList.append(member)
|
|
36348
36410
|
_, gname = member['name'].rsplit('/', 1)
|
|
36349
36411
|
getCIGroupMembers(ci, f'groups/{gname}', memberRoles, membersList, membersSet, i, count,
|
|
36350
|
-
memberOptions, memberDisplayOptions, level+1, typesSet, memberName, kwargs)
|
|
36412
|
+
memberOptions, memberDisplayOptions, level+1, typesSet, memberName, kwargs, cd)
|
|
36351
36413
|
|
|
36352
36414
|
CIGROUPMEMBERS_FIELDS_CHOICE_MAP = {
|
|
36353
36415
|
'createtime': 'createTime',
|
|
@@ -36511,7 +36573,7 @@ def doPrintCIGroupMembers():
|
|
|
36511
36573
|
membersList = []
|
|
36512
36574
|
membersSet = set()
|
|
36513
36575
|
getCIGroupMembers(ci, groupEntity['name'], getRoles, membersList, membersSet, i, count,
|
|
36514
|
-
memberOptions, memberDisplayOptions, level, typesSet, groupEmail, kwargs)
|
|
36576
|
+
memberOptions, memberDisplayOptions, level, typesSet, groupEmail, kwargs, None)
|
|
36515
36577
|
if showOwnedBy and not checkCIGroupShowOwnedBy(showOwnedBy, membersList):
|
|
36516
36578
|
continue
|
|
36517
36579
|
for member in membersList:
|
|
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
|
|
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
|