mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-03 22:01:39 +00:00
gam report gmail updates
This commit is contained in:
@@ -512,6 +512,8 @@ If an item contains spaces, it should be surrounded by ".
|
||||
<MatterItem> ::= <UniqueID>|<String>
|
||||
<MatterState> ::= open|closed|deleted
|
||||
<MeetConferenceName> ::= conferenceRecords/<String>
|
||||
<MeetID> ::= <String>
|
||||
Must match this Python Regular Expression: [a-z]{3}-[a-z]{4}-[a-z]{3}
|
||||
<MeetSpaceName> ::= spaces/<String> | <String>
|
||||
<MessageContent> ::=
|
||||
(message|textmessage|htmlmessage <String>)|
|
||||
@@ -527,6 +529,7 @@ If an item contains spaces, it should be surrounded by ".
|
||||
(gdoc|ghtml <UserGoogleDoc>)|
|
||||
(gcsdoc|gcshtml <StorageBucketObjectName>)
|
||||
<NumberOfSeats> ::= <Number>
|
||||
<NumberRange> ::= <Number>|(<Number>/<Number>)
|
||||
<OrgUnitID> ::= id:<String>
|
||||
<OrgUnitPath> ::= /|(/<String>)+
|
||||
<OrgUnitItem> ::= <OrgUnitID>|<OrgUnitPath>
|
||||
@@ -764,6 +767,7 @@ If an item contains spaces, it should be surrounded by ".
|
||||
<MimeTypeNameList> ::= "<MimeTypeName>(,<MimeTypeName>)*"
|
||||
<NamespaceList> ::= "<Namespace>(,<Namespace>)*"
|
||||
<NotesNameList> ::= "<NotesName>(,<NotesName>)*"
|
||||
<NumberRangeList> ::= "<NumberRange>(,<NumberRange>)*"
|
||||
<OrgUnitList> ::= "<OrgUnitItem>(,<OrgUnitItem>)*"
|
||||
<OtherContactsResourceNameList> ::= "<OtherContactsResourceName>(,<OtherContactsResourceName>)*"
|
||||
<PeopleResourceNameList> ::= "<PeopleResourceName>(,<PeopleResourceName>)*"
|
||||
@@ -4630,6 +4634,7 @@ gam report <ActivityApplicationName> [todrive <ToDriveAttribute>*]
|
||||
yesterday|today|thismonth|(previousmonths <Integer>)]
|
||||
[filter <String> (filtertime<String> <Time>)*]
|
||||
[event|events <EventNameList>] [ip <String>]
|
||||
[gmaileventtypes <NumberRangeList>]
|
||||
[groupidfilter <String>] [resourcedetailsfilter <String>]
|
||||
[maxactivities <Number>] [maxevents <Number>] [maxresults <Number>]
|
||||
[countsonly [bydate|summary] [eventrowfilter]]
|
||||
|
||||
@@ -1,3 +1,16 @@
|
||||
7.30.05
|
||||
|
||||
Added option `gmaileventtypes <NumberRangeList>` to `gam report gmail` that can be used to limit the event types displayed.
|
||||
```
|
||||
<NumberRange> ::= <Number>|(<Number>/<Number>)
|
||||
<NumberRangeList> ::= "<NumberRange>(,<NumberRange>)*"
|
||||
|
||||
gam report gmail user user@domain.com gmaileventtypes 1,10/11
|
||||
```
|
||||
* See: https://developers.google.com/workspace/admin/reports/v1/appendix/activity/gmail
|
||||
|
||||
Updated sorting of column headers in `gam report <ActivityApplicationName>`.
|
||||
|
||||
7.30.04
|
||||
|
||||
Updated `gam report gmail` to avoid the following error when incomplete start/end time information is provided.
|
||||
|
||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
||||
"""
|
||||
|
||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||
__version__ = '7.30.04'
|
||||
__version__ = '7.30.05'
|
||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||
|
||||
#pylint: disable=wrong-import-position
|
||||
@@ -1546,6 +1546,25 @@ def getIntegerEmptyAllowed(minVal=None, maxVal=None, default=0):
|
||||
invalidArgumentExit(integerLimits(minVal, maxVal))
|
||||
return default
|
||||
|
||||
def getNumberRangeList():
|
||||
if Cmd.ArgumentsRemaining():
|
||||
numberlist = []
|
||||
for number in Cmd.Current().strip().replace(',', ' ').split():
|
||||
if number.isdigit():
|
||||
numberlist.append(int(number))
|
||||
elif '/' in number:
|
||||
lrange, urange = number.split('/', 1)
|
||||
if lrange.isdigit() and urange.isdigit() and int(lrange) <= int(urange):
|
||||
for n in range(int(lrange), int(urange)+1):
|
||||
numberlist.append(n)
|
||||
else:
|
||||
invalidArgumentExit(Cmd.OB_NUMBER_RANGE_LIST)
|
||||
else:
|
||||
invalidArgumentExit(Cmd.OB_NUMBER_RANGE_LIST)
|
||||
Cmd.Advance()
|
||||
return sorted(numberlist)
|
||||
missingArgumentExit(Cmd.OB_NUMBER_RANGE_LIST)
|
||||
|
||||
SORTORDER_CHOICE_MAP = {'ascending': 'ASCENDING', 'descending': 'DESCENDING'}
|
||||
|
||||
class OrderBy():
|
||||
@@ -14074,6 +14093,7 @@ def doReport():
|
||||
allVerifyUser = userKey = 'all'
|
||||
cd = orgUnit = orgUnitId = None
|
||||
userOrgUnits = {}
|
||||
gmailEventTypes = set()
|
||||
customerReports = userReports = False
|
||||
if report == 'customer':
|
||||
customerReports = True
|
||||
@@ -14177,6 +14197,8 @@ def doReport():
|
||||
groupIdFilter = getString(Cmd.OB_STRING)
|
||||
elif activityReports and myarg == 'resourcedetailsfilter':
|
||||
resourceDetailsFilter = getString(Cmd.OB_STRING)
|
||||
elif activityReports and (report == 'gmail') and myarg == 'gmaileventtypes':
|
||||
gmailEventTypes = set(getNumberRangeList())
|
||||
elif myarg == 'addcsvdata':
|
||||
k = getString(Cmd.OB_STRING)
|
||||
addCSVData[k] = getString(Cmd.OB_STRING, minLen=0)
|
||||
@@ -14419,6 +14441,7 @@ def doReport():
|
||||
csvPF.SetTitles('name')
|
||||
if addCSVData:
|
||||
csvPF.AddTitles(sorted(addCSVData.keys()))
|
||||
csvPF.SetSortAllTitles()
|
||||
if select:
|
||||
pageMessage = None
|
||||
normalizeUsers = True
|
||||
@@ -14506,6 +14529,19 @@ def doReport():
|
||||
purge_parameters = True
|
||||
numEvents = 0
|
||||
for event in events:
|
||||
# filter gmail event types
|
||||
if gmailEventTypes:
|
||||
keepEvent = True
|
||||
for item in event.get('parameters', []):
|
||||
if item['name'] == 'event_info':
|
||||
for parm in item.get('messageValue', {}).get('parameter', []):
|
||||
if parm['name'] == 'mail_event_type':
|
||||
if int(parm['intValue']) not in gmailEventTypes:
|
||||
keepEvent = False
|
||||
break
|
||||
break
|
||||
if not keepEvent:
|
||||
continue
|
||||
numEvents += 1
|
||||
for item in event.get('parameters', []):
|
||||
itemSet = set(item)
|
||||
|
||||
@@ -1286,6 +1286,7 @@ class GamCLArgs():
|
||||
OB_MOBILE_ENTITY = 'MobileEntity'
|
||||
OB_NETWORK_ID = 'networkID'
|
||||
OB_NAME = 'Name'
|
||||
OB_NUMBER_RANGE_LIST = 'NumberRangeList'
|
||||
OB_ORGANIZER_TYPE_LIST = 'OrganizerTypeList'
|
||||
OB_ORGUNIT_ENTITY = 'OrgUnitEntity'
|
||||
OB_ORGUNIT_ITEM = 'OrgUnitItem'
|
||||
|
||||
Reference in New Issue
Block a user