mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 12:21:35 +00:00
Added the following options to <EventMatchProperty>
``` matchfield attendeesdomainlist <DomainNameList> matchfield attendeesnotdomainlist <DomainNameList> ```
This commit is contained in:
@@ -196,6 +196,8 @@ Client access works when accessing Resource calendars.
|
|||||||
|
|
||||||
<EventMatchProperty> ::=
|
<EventMatchProperty> ::=
|
||||||
(matchfield attendees <EmailAddressEntity>)|
|
(matchfield attendees <EmailAddressEntity>)|
|
||||||
|
(matchfield attendeesdomainlist <DomainNameList>)|
|
||||||
|
(matchfield attendeesnotdomainlist <DomainNameList>)|
|
||||||
(matchfield attendeespattern <RegularExpression>)|
|
(matchfield attendeespattern <RegularExpression>)|
|
||||||
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
|
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
|
||||||
(matchfield creatoremail <RegularExpression>)|
|
(matchfield creatoremail <RegularExpression>)|
|
||||||
@@ -356,7 +358,11 @@ The Google Calendar API processes `<EventSelectProperty>*`; you may specify none
|
|||||||
|
|
||||||
GAM processes `<EventMatchProperty>*`; you may specify none or multiple properties.
|
GAM processes `<EventMatchProperty>*`; you may specify none or multiple properties.
|
||||||
* `matchfield attendees <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
* `matchfield attendees <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
||||||
* `matchfield attendeespattern <RegularExpression>` - Some attendee must match `<RegularExpression>`
|
* `matchfield attendeesdomainlist <DomainNameList>` - Some attendee's email address must be in a domain in `<DomainNameList>`
|
||||||
|
* For example, this lets you look for events with attendees in specific external domains
|
||||||
|
* `matchfield attendeesnotdomainlist <DomainNameList>` - Some attendee's email address must be in a domain not in `<DomainNameList>`
|
||||||
|
* For example, this let you look for events with attendees not in your internal domains
|
||||||
|
* `matchfield attendeespattern <RegularExpression>` - Some attendee's email address must match `<RegularExpression>`
|
||||||
* `matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
* `matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
||||||
and must have the specified values.
|
and must have the specified values.
|
||||||
* `<AttendeeAttendance>` - Default is `required`
|
* `<AttendeeAttendance>` - Default is `required`
|
||||||
|
|||||||
@@ -10,6 +10,20 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|||||||
|
|
||||||
See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation
|
See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation
|
||||||
|
|
||||||
|
### 6.72.12
|
||||||
|
|
||||||
|
Added the following options to `<EventMatchProperty>` that can be used to select
|
||||||
|
events based on the domains of the attendees.
|
||||||
|
```
|
||||||
|
matchfield attendeesdomainlist <DomainNameList>
|
||||||
|
matchfield attendeesnotdomainlist <DomainNameList>
|
||||||
|
```
|
||||||
|
The first returns true if any attendee's email address is in a domain in `<DomainNameList>`;
|
||||||
|
for example this lets you look for events with attendees in specific external domains.
|
||||||
|
|
||||||
|
The second returns true if any attendee's email address is in a domain other than those in `<DomainNameList>`;
|
||||||
|
for example this lets you look for events with attendees not in your internal domains.
|
||||||
|
|
||||||
### 6.72.11
|
### 6.72.11
|
||||||
|
|
||||||
Added option `oneitemperrow` to 'gam print vaultholds` to have each of a
|
Added option `oneitemperrow` to 'gam print vaultholds` to have each of a
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||||
admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version
|
admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version
|
||||||
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
||||||
GAMADV-XTD3 6.72.11 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.72.12 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.2 64-bit final
|
Python 3.12.2 64-bit final
|
||||||
MacOS Sonoma 14.2.1 x86_64
|
MacOS Sonoma 14.2.1 x86_64
|
||||||
@@ -1006,7 +1006,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt
|
C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt
|
||||||
C:\GAMADV-XTD3>gam version
|
C:\GAMADV-XTD3>gam version
|
||||||
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
||||||
GAMADV-XTD3 6.72.11 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.72.12 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.2 64-bit final
|
Python 3.12.2 64-bit final
|
||||||
Windows-10-10.0.17134 AMD64
|
Windows-10-10.0.17134 AMD64
|
||||||
|
|||||||
@@ -261,6 +261,8 @@
|
|||||||
|
|
||||||
<EventMatchProperty> ::=
|
<EventMatchProperty> ::=
|
||||||
(matchfield attendees <EmailAddressEntity>)|
|
(matchfield attendees <EmailAddressEntity>)|
|
||||||
|
(matchfield attendeesdomainlist <DomainNameList>)|
|
||||||
|
(matchfield attendeesnotdomainlist <DomainNameList>)|
|
||||||
(matchfield attendeespattern <RegularExpression>)|
|
(matchfield attendeespattern <RegularExpression>)|
|
||||||
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
|
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
|
||||||
(matchfield creatoremail <RegularExpression>)|
|
(matchfield creatoremail <RegularExpression>)|
|
||||||
@@ -438,7 +440,11 @@ The Google Calendar API processes `<EventSelectProperty>*`; you may specify none
|
|||||||
|
|
||||||
GAM processes `<EventMatchProperty>*`; you may specify none or multiple properties.
|
GAM processes `<EventMatchProperty>*`; you may specify none or multiple properties.
|
||||||
* `matchfield attendees <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
* `matchfield attendees <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
||||||
* `matchfield attendeespattern <RegularExpression>` - Some attendee must match `<RegularExpression>`
|
* `matchfield attendeesdomainlist <DomainNameList>` - Some attendee's email address must be in a domain in `<DomainNameList>`
|
||||||
|
* For example, this lets you look for events with attendees in specific external domains
|
||||||
|
* `matchfield attendeesnotdomainlist <DomainNameList>` - Some attendee's email address must be in a domain not in `<DomainNameList>`
|
||||||
|
* For example, this let you look for events with attendees not in your internal domains
|
||||||
|
* `matchfield attendeespattern <RegularExpression>` - Some attendee's email address must match `<RegularExpression>`
|
||||||
* `matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
* `matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>` - All of the attendees in `<EmailAddressEntity>` must be present
|
||||||
and must have the specified values.
|
and must have the specified values.
|
||||||
* `<AttendeeAttendance>` - Default is `required`
|
* `<AttendeeAttendance>` - Default is `required`
|
||||||
|
|||||||
@@ -123,7 +123,9 @@ clock_skew_in_seconds
|
|||||||
Default: 10
|
Default: 10
|
||||||
Range: 10 - 3600
|
Range: 10 - 3600
|
||||||
cmdlog
|
cmdlog
|
||||||
Path to GAM Log file; there is no logging if cmdlog is empty
|
Path to GAM Log file; there is no logging if cmdlog is empty.
|
||||||
|
If cmdlog specifies a relative path, e.g., just a filename, it is appended to GamConfigDir.
|
||||||
|
If cmdlog specifies a full path, it is used as is.
|
||||||
Default: ''
|
Default: ''
|
||||||
cmdlog_max_backups
|
cmdlog_max_backups
|
||||||
Maximum number of backup log files
|
Maximum number of backup log files
|
||||||
|
|||||||
@@ -1597,6 +1597,8 @@ gam calendar <CalendarEntity> printacl [todrive <ToDriveAttribute>*]
|
|||||||
|
|
||||||
<EventMatchProperty> ::=
|
<EventMatchProperty> ::=
|
||||||
(matchfield attendees <EmailAddressEntity>)|
|
(matchfield attendees <EmailAddressEntity>)|
|
||||||
|
(matchfield attendeesdomainlist <DomainNameList>)|
|
||||||
|
(matchfield attendeesnotdomainlist <DomainNameList>)|
|
||||||
(matchfield attendeespattern <RegularExpression>)|
|
(matchfield attendeespattern <RegularExpression>)|
|
||||||
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
|
(matchfield attendeesstatus [<AttendeeAttendance>] [<AttendeeStatus>] <EmailAddressEntity>)|
|
||||||
(matchfield creatoremail <RegularExpression>)|
|
(matchfield creatoremail <RegularExpression>)|
|
||||||
|
|||||||
@@ -2,6 +2,20 @@
|
|||||||
|
|
||||||
Merged GAM-Team version
|
Merged GAM-Team version
|
||||||
|
|
||||||
|
6.72.12
|
||||||
|
|
||||||
|
Added the following options to `<EventMatchProperty>` that can be used to select
|
||||||
|
events based on the domains of the attendees.
|
||||||
|
```
|
||||||
|
matchfield attendeesdomainlist <DomainNameList>
|
||||||
|
matchfield attendeesnotdomainlist <DomainNameList>
|
||||||
|
```
|
||||||
|
The first returns true if any attendee's email address is in a domain in `<DomainNameList>`;
|
||||||
|
for example this lets you look for events with attendees in specific external domains.
|
||||||
|
|
||||||
|
The second returns true if any attendee's email address is in a domain other than those in `<DomainNameList>`;
|
||||||
|
for example this lets you look for events with attendees not in your internal domains.
|
||||||
|
|
||||||
6.72.11
|
6.72.11
|
||||||
|
|
||||||
Added option `oneitemperrow` to 'gam print vaultholds` to have each of a
|
Added option `oneitemperrow` to 'gam print vaultholds` to have each of a
|
||||||
|
|||||||
@@ -36164,6 +36164,8 @@ LIST_EVENTS_SELECT_PROPERTIES = {
|
|||||||
|
|
||||||
LIST_EVENTS_MATCH_FIELDS = {
|
LIST_EVENTS_MATCH_FIELDS = {
|
||||||
'attendees': ['attendees', 'email'],
|
'attendees': ['attendees', 'email'],
|
||||||
|
'attendeesdomainlist': ['attendees', 'domainlist'],
|
||||||
|
'attendeesnotdomainlist': ['attendees', 'notdomainlist'],
|
||||||
'attendeespattern': ['attendees', 'match'],
|
'attendeespattern': ['attendees', 'match'],
|
||||||
'attendeesstatus': ['attendees', 'status'],
|
'attendeesstatus': ['attendees', 'status'],
|
||||||
'description': ['description'],
|
'description': ['description'],
|
||||||
@@ -36235,6 +36237,8 @@ def getCalendarEventEntity():
|
|||||||
calendarEventEntity['matches'].append((matchField, getBoolean()))
|
calendarEventEntity['matches'].append((matchField, getBoolean()))
|
||||||
elif matchField[0] != 'attendees' or matchField[1] == 'match':
|
elif matchField[0] != 'attendees' or matchField[1] == 'match':
|
||||||
calendarEventEntity['matches'].append((matchField, getREPattern(re.IGNORECASE)))
|
calendarEventEntity['matches'].append((matchField, getREPattern(re.IGNORECASE)))
|
||||||
|
elif matchField[0] == 'attendees' and matchField[1] in {'domainlist', 'notdomainlist'}:
|
||||||
|
calendarEventEntity['matches'].append((matchField, set(getString(Cmd.OB_DOMAIN_NAME_LIST).replace(',', ' ').split())))
|
||||||
elif matchField[1] == 'email':
|
elif matchField[1] == 'email':
|
||||||
calendarEventEntity['matches'].append((matchField, getNormalizedEmailAddressEntity()))
|
calendarEventEntity['matches'].append((matchField, getNormalizedEmailAddressEntity()))
|
||||||
else: #status
|
else: #status
|
||||||
@@ -36509,6 +36513,18 @@ def _eventMatches(event, match):
|
|||||||
if match[1].search(attendee) is not None:
|
if match[1].search(attendee) is not None:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
if match[0][1] == 'domainlist':
|
||||||
|
for attendee in attendees:
|
||||||
|
_, domain = attendee.lower().split('@', 1)
|
||||||
|
if domain in match[1]:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
if match[0][1] == 'notdomainlist':
|
||||||
|
for attendee in attendees:
|
||||||
|
_, domain = attendee.lower().split('@', 1)
|
||||||
|
if domain not in match[1]:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
# status
|
# status
|
||||||
for matchEmail in match[3]:
|
for matchEmail in match[3]:
|
||||||
for attendee in event['attendees']:
|
for attendee in event['attendees']:
|
||||||
|
|||||||
Reference in New Issue
Block a user