This commit is contained in:
Jay Lee
2022-06-30 00:12:51 +00:00
6 changed files with 58 additions and 19 deletions

View File

@ -49,22 +49,22 @@ jobs:
goal: build goal: build
arch: Win32 arch: Win32
openssl_archs: VC-WIN32 openssl_archs: VC-WIN32
- os: ubuntu-20.04 - os: ubuntu-22.04
goal: test goal: test
python: "3.7" python: "3.7"
jid: 7 jid: 7
arch: x86_64 arch: x86_64
- os: ubuntu-20.04 - os: ubuntu-22.04
goal: test goal: test
python: "3.8" python: "3.8"
jid: 8 jid: 8
arch: x86_64 arch: x86_64
- os: ubuntu-20.04 - os: ubuntu-22.04
goal: test goal: test
python: "3.9" python: "3.9"
jid: 9 jid: 9
arch: x86_64 arch: x86_64
- os: ubuntu-20.04 - os: ubuntu-22.04
goal: test goal: test
python: "3.11-dev" python: "3.11-dev"
jid: 10 jid: 10
@ -82,7 +82,7 @@ jobs:
with: with:
path: | path: |
bin bin
key: gam-${{ matrix.jid }}-20220525 key: gam-${{ matrix.jid }}-20220621
- name: Use pre-compiled Python for testing - name: Use pre-compiled Python for testing
if: matrix.python != '' if: matrix.python != ''
@ -628,7 +628,7 @@ jobs:
$gam print vaultmatters matterstate open $gam print vaultmatters matterstate open
$gam print vaultholds matter $matterid $gam print vaultholds matter $matterid
$gam print vaultcount matter $matterid corpus mail everyone todrive $gam print vaultcount matter $matterid corpus mail everyone todrive
$gam create vaultexport matter $matterid name "GHA export $newbase" corpus mail accounts $newuser use_new_export true $gam create vaultexport matter $matterid name "GHA export $newbase" corpus mail accounts $newuser use_new_export false
$gam print exports matter $matterid | $gam csv - gam info export $matterid id:~~id~~ $gam print exports matter $matterid | $gam csv - gam info export $matterid id:~~id~~
$gam csv sample.csv gam user ~email add calendar id:$newresource $gam csv sample.csv gam user ~email add calendar id:$newresource
$gam delete resource $newresource $gam delete resource $newresource

View File

@ -682,12 +682,19 @@ Specify a collection of Users by directly specifying them or by specifying items
## Item attributes ## Item attributes
<BuildingAttribute> ::= <BuildingAttribute> ::=
(address|addresslines <String>)|
(city|locality <String>)|
(country|regioncode <String>)|
(description <String>)| (description <String>)|
(floors <FloorNameList>)| (floors <FloorNameList>)|
(id <String>)| (id <String>)|
(language|languageCode <Language>)|
(latitude <Float>)| (latitude <Float>)|
(longitude <Float>)| (longitude <Float>)|
(name <String>) (name <String>)
(state|administrativearea <String>)|
(sublocality <String>)|
(zipcode|postalcode <String>)
<CalendarAttribute> ::= <CalendarAttribute> ::=
(selected <Boolean>)|(hidden <Boolean>)|(summary <String>)|(colorindex|colorid <CalendarColorIndex>)|(backgroundcolor <ColorValue>)|(foregroundcolor <ColorValue>)| (selected <Boolean>)|(hidden <Boolean>)|(summary <String>)|(colorindex|colorid <CalendarColorIndex>)|(backgroundcolor <ColorValue>)|(foregroundcolor <ColorValue>)|
@ -1839,7 +1846,7 @@ gam <UserTypeEntity> update teamdrive <TeamDriveID>|(name <TeamDriveName>) [asad
[(theme|themeid <String>) | ([customtheme <DriveFileID> <Float> <Float> <Float>] [color <ColorValue>])] [(theme|themeid <String>) | ([customtheme <DriveFileID> <Float> <Float> <Float>] [color <ColorValue>])]
(<TeamDriveRestrictionsSubfieldName> <Boolean>)* (<TeamDriveRestrictionsSubfieldName> <Boolean>)*
[hidden <Boolean>] [hidden <Boolean>]
gam <UserTypeEntity> delete teamdrive <TeamDriveID>|(name <TeamDriveName>) [allowitemdeletion|nukefromorbit] gam <UserTypeEntity> delete teamdrive <TeamDriveID>|(name <TeamDriveName>) [asadmin] [allowitemdeletion|nukefromorbit]
gam <UserTypeEntity> show teamdriveinfo <TeamDriveID>|(name <TeamDriveName>) [asadmin] gam <UserTypeEntity> show teamdriveinfo <TeamDriveID>|(name <TeamDriveName>) [asadmin]
gam <UserTypeEntity> show teamdrives [query <QueryTeamDrive>] [asadmin] gam <UserTypeEntity> show teamdrives [query <QueryTeamDrive>] [asadmin]
gam <UserTypeEntity> print teamdrives [query <QueryTeamDrive>] [todrive] [asadmin] gam <UserTypeEntity> print teamdrives [query <QueryTeamDrive>] [todrive] [asadmin]

View File

@ -8243,6 +8243,9 @@ def doDeleteSharedDrive(users):
allowItemDeletion = True allowItemDeletion = True
useDomainAdminAccess = True useDomainAdminAccess = True
i += 1 i += 1
elif myarg == 'asadmin':
useDomainAdminAccess = True
i += 1
else: else:
controlflow.invalid_argument_exit( controlflow.invalid_argument_exit(
myarg, 'gam delete shareddrive') myarg, 'gam delete shareddrive')

View File

@ -373,17 +373,20 @@ def makeOrgUnitPathRelative(path):
def encodeOrgUnitPath(path): def encodeOrgUnitPath(path):
if path.find('+') == -1 and path.find('%') == -1: # 6.22 - This method no longer works.
return path # % no longer needs encoding and + is handled incorrectly in API with or without encoding
encpath = '' return path
for c in path: # if path.find('+') == -1 and path.find('%') == -1:
if c == '+': # return path
encpath += '%2B' # encpath = ''
elif c == '%': # for c in path:
encpath += '%25' # if c == '+':
else: # encpath += '%2B'
encpath += c # elif c == '%':
return encpath # encpath += '%25'
# else:
# encpath += c
# return encpath
def getOrgUnitItem(orgUnit, pathOnly=False, absolutePath=True): def getOrgUnitItem(orgUnit, pathOnly=False, absolutePath=True):

View File

@ -227,6 +227,22 @@ def printFeatures():
display.write_csv_file(csvRows, titles, 'Features', to_drive) display.write_csv_file(csvRows, titles, 'Features', to_drive)
BUILDING_ADDRESS_FIELD_MAP = {
'address': 'addressLines',
'addresslines': 'addressLines',
'administrativearea': 'administrativeArea',
'city': 'locality',
'country': 'regionCode',
'language': 'languageCode',
'languagecode': 'languageCode',
'locality': 'locality',
'postalcode': 'postalCode',
'regioncode': 'regionCode',
'state': 'administrativeArea',
'sublocality': 'sublocality',
'zipcode': 'postalCode',
}
def _getBuildingAttributes(args, body={}): def _getBuildingAttributes(args, body={}):
i = 0 i = 0
while i < len(args): while i < len(args):
@ -253,6 +269,16 @@ def _getBuildingAttributes(args, body={}):
elif myarg == 'floors': elif myarg == 'floors':
body['floorNames'] = args[i + 1].split(',') body['floorNames'] = args[i + 1].split(',')
i += 2 i += 2
elif myarg in BUILDING_ADDRESS_FIELD_MAP:
myarg = BUILDING_ADDRESS_FIELD_MAP[myarg]
body.setdefault('address', {})
if myarg == 'addressLines':
body['address'][myarg] = args[i + 1].split('\n')
elif myarg == 'languageCode':
body['address'][myarg] = LANGUAGE_CODES_MAP.get(args[i + 1].lower(), args[i + 1])
else:
body['address'][myarg] = args[i + 1]
i += 2
else: else:
controlflow.invalid_argument_exit(myarg, controlflow.invalid_argument_exit(myarg,
'gam create|update building') 'gam create|update building')

View File

@ -27,7 +27,7 @@ def create():
body['scopeType']) body['scopeType'])
if body['scopeType'] == 'ORG_UNIT': if body['scopeType'] == 'ORG_UNIT':
orgUnit, orgUnitId = gapi_directory_orgunits.getOrgUnitId( orgUnit, orgUnitId = gapi_directory_orgunits.getOrgUnitId(
sys.argv[6], cd) sys.argv[i], cd)
body['orgUnitId'] = orgUnitId[3:] body['orgUnitId'] = orgUnitId[3:]
scope = f'ORG_UNIT {orgUnit}' scope = f'ORG_UNIT {orgUnit}'
i = 7 i = 7