gam7 7.27.4__py3-none-any.whl → 7.27.5__py3-none-any.whl
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.
- gam/__init__.py +19 -14
- gam/gamlib/glapi.py +0 -6
- {gam7-7.27.4.dist-info → gam7-7.27.5.dist-info}/METADATA +1 -1
- {gam7-7.27.4.dist-info → gam7-7.27.5.dist-info}/RECORD +7 -7
- {gam7-7.27.4.dist-info → gam7-7.27.5.dist-info}/WHEEL +0 -0
- {gam7-7.27.4.dist-info → gam7-7.27.5.dist-info}/entry_points.txt +0 -0
- {gam7-7.27.4.dist-info → gam7-7.27.5.dist-info}/licenses/LICENSE +0 -0
gam/__init__.py
CHANGED
|
@@ -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.27.
|
|
28
|
+
__version__ = '7.27.05'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -35921,7 +35921,7 @@ def doPrintShowGroupTree():
|
|
|
35921
35921
|
# gam create cigroup <EmailAddress>
|
|
35922
35922
|
# [copyfrom <GroupItem>] <GroupAttribute>
|
|
35923
35923
|
# [makeowner] [alias|aliases <CIGroupAliasList>]
|
|
35924
|
-
# [security|makesecuritygroup]
|
|
35924
|
+
# [security|makesecuritygroup] [locked]
|
|
35925
35925
|
# [dynamic <QueryDynamicGroup>]
|
|
35926
35926
|
def doCreateCIGroup():
|
|
35927
35927
|
doCreateGroup(ciGroupsAPI=True)
|
|
@@ -36105,7 +36105,6 @@ def doUpdateCIGroups():
|
|
|
36105
36105
|
|
|
36106
36106
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
36107
36107
|
ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
|
|
36108
|
-
cib = None
|
|
36109
36108
|
entityType = Ent.CLOUD_IDENTITY_GROUP
|
|
36110
36109
|
csvPF = None
|
|
36111
36110
|
getBeforeUpdate = preview = False
|
|
@@ -36214,7 +36213,6 @@ def doUpdateCIGroups():
|
|
|
36214
36213
|
_, name, _ = convertGroupEmailToCloudID(ci, group, i, count)
|
|
36215
36214
|
if not name:
|
|
36216
36215
|
continue
|
|
36217
|
-
cipl = ci
|
|
36218
36216
|
twoUpdates = False
|
|
36219
36217
|
if 'labels' in ci_body or lockGroup is not None:
|
|
36220
36218
|
try:
|
|
@@ -36243,20 +36241,16 @@ def doUpdateCIGroups():
|
|
|
36243
36241
|
else:
|
|
36244
36242
|
if CIGROUP_LOCKED_LABEL in ci_body['labels']:
|
|
36245
36243
|
ci_body['labels'].pop(CIGROUP_LOCKED_LABEL)
|
|
36246
|
-
if CIGROUP_LOCKED_LABEL in ci_body['labels']:
|
|
36247
|
-
if cib is None:
|
|
36248
|
-
cib = buildGAPIObject(API.CLOUDIDENTITY_GROUPS_BETA)
|
|
36249
|
-
cipl = cib
|
|
36250
36244
|
if ci_body:
|
|
36251
36245
|
try:
|
|
36252
36246
|
if twoUpdates:
|
|
36253
36247
|
ci_body['labels'].pop(CIGROUP_LOCKED_LABEL)
|
|
36254
|
-
callGAPI(
|
|
36248
|
+
callGAPI(ci.groups(), 'patch',
|
|
36255
36249
|
throwReasons=GAPI.CIGROUP_UPDATE_THROW_REASONS,
|
|
36256
36250
|
retryReasons=GAPI.CIGROUP_RETRY_REASONS,
|
|
36257
36251
|
name=name, body=ci_body, updateMask=','.join(list(ci_body.keys())))
|
|
36258
36252
|
ci_body['labels'][CIGROUP_LOCKED_LABEL] = ''
|
|
36259
|
-
callGAPI(
|
|
36253
|
+
callGAPI(ci.groups(), 'patch',
|
|
36260
36254
|
throwReasons=GAPI.CIGROUP_UPDATE_THROW_REASONS,
|
|
36261
36255
|
retryReasons=GAPI.CIGROUP_RETRY_REASONS,
|
|
36262
36256
|
name=name, body=ci_body, updateMask=','.join(list(ci_body.keys())))
|
|
@@ -37240,20 +37234,17 @@ def doPrintCIGroups():
|
|
|
37240
37234
|
else:
|
|
37241
37235
|
getFullFieldsList = list(CIGROUP_FULL_FIELDS)
|
|
37242
37236
|
getFullFields = ','.join(getFullFieldsList)#
|
|
37243
|
-
cipl = ci
|
|
37244
37237
|
if query:
|
|
37245
37238
|
method = 'search'
|
|
37246
37239
|
if 'parent' not in query:
|
|
37247
37240
|
query += f" && parent == '{parent}'"
|
|
37248
37241
|
kwargs = {'query': query}
|
|
37249
|
-
if CIGROUP_LOCKED_LABEL in query:
|
|
37250
|
-
cipl = buildGAPIObject(API.CLOUDIDENTITY_GROUPS_BETA)
|
|
37251
37242
|
else:
|
|
37252
37243
|
method = 'list'
|
|
37253
37244
|
kwargs = {'parent': parent}
|
|
37254
37245
|
printGettingAllAccountEntities(Ent.CLOUD_IDENTITY_GROUP, query)
|
|
37255
37246
|
try:
|
|
37256
|
-
entityList = callGAPIpages(
|
|
37247
|
+
entityList = callGAPIpages(ci.groups(), method, 'groups',
|
|
37257
37248
|
pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute=['groupKey', 'id'],
|
|
37258
37249
|
throwReasons=GAPI.CIGROUP_LIST_THROW_REASONS, retryReasons=GAPI.CIGROUP_RETRY_REASONS,
|
|
37259
37250
|
view='FULL', fields=fieldsnp, pageSize=pageSize, **kwargs)
|
|
@@ -49166,6 +49157,7 @@ def _getCoursesInfo(croom, courseSelectionParameters, courseShowProperties, getO
|
|
|
49166
49157
|
# [show none|all|students|teachers] [countsonly]
|
|
49167
49158
|
# [fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>]
|
|
49168
49159
|
# [timefilter creationtime|updatetime] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
|
|
49160
|
+
# (addcsvdata <FieldName> <String>)*
|
|
49169
49161
|
# [showitemcountonly] [formatjson [quotechar <Character>]]
|
|
49170
49162
|
def doPrintCourses():
|
|
49171
49163
|
def _saveParticipants(course, participants, role, rtitles):
|
|
@@ -49209,6 +49201,7 @@ def doPrintCourses():
|
|
|
49209
49201
|
delimiter = GC.Values[GC.CSV_OUTPUT_FIELD_DELIMITER]
|
|
49210
49202
|
showItemCountOnly = False
|
|
49211
49203
|
useOwnerAccess = GC.Values[GC.USE_COURSE_OWNER_ACCESS]
|
|
49204
|
+
addCSVData = {}
|
|
49212
49205
|
while Cmd.ArgumentsRemaining():
|
|
49213
49206
|
myarg = getArgument()
|
|
49214
49207
|
if myarg == 'todrive':
|
|
@@ -49223,6 +49216,9 @@ def doPrintCourses():
|
|
|
49223
49216
|
pass
|
|
49224
49217
|
elif myarg == 'showitemcountonly':
|
|
49225
49218
|
showItemCountOnly = True
|
|
49219
|
+
elif myarg == 'addcsvdata':
|
|
49220
|
+
k = getString(Cmd.OB_STRING)
|
|
49221
|
+
addCSVData[k] = getString(Cmd.OB_STRING, minLen=0)
|
|
49226
49222
|
else:
|
|
49227
49223
|
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
|
49228
49224
|
applyCourseItemFilter = _setApplyCourseItemFilter(courseItemFilter, None)
|
|
@@ -49234,6 +49230,11 @@ def doPrintCourses():
|
|
|
49234
49230
|
if showItemCountOnly:
|
|
49235
49231
|
writeStdout('0\n')
|
|
49236
49232
|
return
|
|
49233
|
+
if addCSVData:
|
|
49234
|
+
csvPF.AddTitles(sorted(addCSVData.keys()))
|
|
49235
|
+
if FJQC.formatJSON:
|
|
49236
|
+
csvPF.AddJSONTitles(sorted(addCSVData.keys()))
|
|
49237
|
+
csvPF.MoveJSONTitlesToEnd(['JSON'])
|
|
49237
49238
|
if courseShowProperties['aliases']:
|
|
49238
49239
|
if FJQC.formatJSON:
|
|
49239
49240
|
csvPF.AddJSONTitles('JSON-aliases')
|
|
@@ -49291,11 +49292,15 @@ def doPrintCourses():
|
|
|
49291
49292
|
if courseShowProperties['members'] != 'teachers':
|
|
49292
49293
|
_saveParticipants(course, students, 'students', stitles)
|
|
49293
49294
|
row = flattenJSON(course, timeObjects=COURSE_TIME_OBJECTS, noLenObjects=COURSE_NOLEN_OBJECTS)
|
|
49295
|
+
if addCSVData:
|
|
49296
|
+
row.update(addCSVData)
|
|
49294
49297
|
if not FJQC.formatJSON:
|
|
49295
49298
|
csvPF.WriteRowTitles(row)
|
|
49296
49299
|
elif csvPF.CheckRowTitles(row):
|
|
49297
49300
|
row = {'id': courseId, 'JSON': json.dumps(cleanJSON(course, timeObjects=COURSE_TIME_OBJECTS),
|
|
49298
49301
|
ensure_ascii=False, sort_keys=True)}
|
|
49302
|
+
if addCSVData:
|
|
49303
|
+
row.update(addCSVData)
|
|
49299
49304
|
if courseShowProperties['aliases']:
|
|
49300
49305
|
row['JSON-aliases'] = json.dumps(list(aliases))
|
|
49301
49306
|
if courseShowProperties['members'] != 'none':
|
gam/gamlib/glapi.py
CHANGED
|
@@ -46,7 +46,6 @@ CLASSROOM = 'classroom'
|
|
|
46
46
|
CLOUDCHANNEL = 'cloudchannel'
|
|
47
47
|
CLOUDIDENTITY_DEVICES = 'cloudidentitydevices'
|
|
48
48
|
CLOUDIDENTITY_GROUPS = 'cloudidentitygroups'
|
|
49
|
-
CLOUDIDENTITY_GROUPS_BETA = 'cloudidentitygroupsbeta'
|
|
50
49
|
CLOUDIDENTITY_INBOUND_SSO = 'cloudidentityinboundsso'
|
|
51
50
|
CLOUDIDENTITY_ORGUNITS = 'cloudidentityorgunits'
|
|
52
51
|
CLOUDIDENTITY_ORGUNITS_BETA = 'cloudidentityorgunitsbeta'
|
|
@@ -242,7 +241,6 @@ _INFO = {
|
|
|
242
241
|
CLOUDCHANNEL: {'name': 'Cloud Channel API', 'version': 'v1', 'v2discovery': True},
|
|
243
242
|
CLOUDIDENTITY_DEVICES: {'name': 'Cloud Identity API - Devices', 'version': 'v1', 'v2discovery': True, 'mappedAPI': 'cloudidentity'},
|
|
244
243
|
CLOUDIDENTITY_GROUPS: {'name': 'Cloud Identity API - Groups', 'version': 'v1', 'v2discovery': True, 'mappedAPI': 'cloudidentity'},
|
|
245
|
-
CLOUDIDENTITY_GROUPS_BETA: {'name': 'Cloud Identity API - Groups Beta', 'version': 'v1beta1', 'v2discovery': True, 'mappedAPI': 'cloudidentity'},
|
|
246
244
|
CLOUDIDENTITY_INBOUND_SSO: {'name': 'Cloud Identity API - Inbound SSO Settings', 'version': 'v1', 'v2discovery': True, 'mappedAPI': 'cloudidentity'},
|
|
247
245
|
CLOUDIDENTITY_ORGUNITS: {'name': 'Cloud Identity API - OrgUnits', 'version': 'v1', 'v2discovery': True, 'mappedAPI': 'cloudidentity'},
|
|
248
246
|
CLOUDIDENTITY_ORGUNITS_BETA: {'name': 'Cloud Identity API - OrgUnits Beta', 'version': 'v1beta1', 'v2discovery': True, 'mappedAPI': 'cloudidentity'},
|
|
@@ -387,10 +385,6 @@ _CLIENT_SCOPES = [
|
|
|
387
385
|
'api': CLOUDIDENTITY_GROUPS,
|
|
388
386
|
'subscopes': READONLY,
|
|
389
387
|
'scope': 'https://www.googleapis.com/auth/cloud-identity.groups'},
|
|
390
|
-
{'name': 'Cloud Identity API - Groups Beta (Enables group locking/unlocking)',
|
|
391
|
-
'api': CLOUDIDENTITY_GROUPS_BETA,
|
|
392
|
-
'subscopes': [],
|
|
393
|
-
'scope': 'https://www.googleapis.com/auth/cloud-identity.groups'},
|
|
394
388
|
{'name': 'Cloud Identity API - Inbound SSO Settings',
|
|
395
389
|
'api': CLOUDIDENTITY_INBOUND_SSO,
|
|
396
390
|
'subscopes': READONLY,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
1
|
+
gam/__init__.py,sha256=6PDXteFqxSWOxe1OFvcP0KN88cuEkZPVH6JmPM95r9M,3629732
|
|
2
2
|
gam/__main__.py,sha256=VwEYS7a9vYQPbT6iLduMOoVUJ6p4R-HZgerZQmM1NpE,1307
|
|
3
3
|
gam/cacerts.pem,sha256=DUsVo2XlFYwfkhe3gnxa-Km4Z4noz74hSApXwTT-nQE,44344
|
|
4
4
|
gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
|
|
@@ -22,7 +22,7 @@ gam/atom/token_store.py,sha256=7E6Ecvxa86WCvl1pJAhv78jg9OxQv8pMtIUcPhZCq04,3803
|
|
|
22
22
|
gam/atom/url.py,sha256=pxO1TlORxyKQTQ1bkBE1unFzjnv9c8LjJkm-UEORShY,4276
|
|
23
23
|
gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
|
|
24
24
|
gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
|
|
25
|
-
gam/gamlib/glapi.py,sha256=
|
|
25
|
+
gam/gamlib/glapi.py,sha256=t2ivDXJg4kH0SbdUJNdJH7IZG0uGEUz9gFuU3ri8CpQ,36638
|
|
26
26
|
gam/gamlib/glcfg.py,sha256=do_FR9m9m7Bmh2SgjLPk2pysU-wPHt7PlqPPjX90tpw,28684
|
|
27
27
|
gam/gamlib/glclargs.py,sha256=LlTtwJJHqU48l7SQT4bcZCWlw3Y46g42Bn1ACGW8gIk,53307
|
|
28
28
|
gam/gamlib/glentity.py,sha256=KWFomkoNE6lLE83zVqVIlJ2rkzfLkhEasW1M0TWGieA,35373
|
|
@@ -47,8 +47,8 @@ gam/gdata/apps/audit/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrK
|
|
|
47
47
|
gam/gdata/apps/audit/service.py,sha256=Z1eueThcNeVUMWP1DRWc_DGHrJCiJI8W_xj6L-cqu-Q,9658
|
|
48
48
|
gam/gdata/apps/contacts/__init__.py,sha256=Um6zgIkiahZns7yAEuC3pxHSMD8iciZ_EoynSLoYPfU,30463
|
|
49
49
|
gam/gdata/apps/contacts/service.py,sha256=5lNb-Ii1Gyek6ePFji3kyoYtCBc8CuJTwagx2BL2o14,15684
|
|
50
|
-
gam7-7.27.
|
|
51
|
-
gam7-7.27.
|
|
52
|
-
gam7-7.27.
|
|
53
|
-
gam7-7.27.
|
|
54
|
-
gam7-7.27.
|
|
50
|
+
gam7-7.27.5.dist-info/METADATA,sha256=iZoJeKU1yqmMJyPCY7_mGJ1B_5C-usNASAEvyqRS4d0,3093
|
|
51
|
+
gam7-7.27.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
52
|
+
gam7-7.27.5.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
|
|
53
|
+
gam7-7.27.5.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
54
|
+
gam7-7.27.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|