mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-29 18:31:38 +00:00
Alert Center Pub/Sub notifications
This commit is contained in:
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
||||
"""
|
||||
|
||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
||||
__version__ = '7.18.03'
|
||||
__version__ = '7.18.04'
|
||||
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||
|
||||
#pylint: disable=wrong-import-position
|
||||
@@ -27081,6 +27081,8 @@ def _getChatMemberEmail(cd, member):
|
||||
if member['member']['type'] == 'HUMAN':
|
||||
_, memberUid = member['member']['name'].split('/')
|
||||
member['member']['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['user'])
|
||||
if member['member']['email'].find('@') == -1:
|
||||
member['member']['email'] = 'id:'+member['member']['email']
|
||||
elif 'groupMember' in member:
|
||||
_, memberUid = member['groupMember']['name'].split('/')
|
||||
member['groupMember']['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, None, emailTypes=['group'])
|
||||
@@ -37798,6 +37800,54 @@ def doDeleteOrUndeleteAlert():
|
||||
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied):
|
||||
userAlertsServiceNotEnabledWarning(user)
|
||||
|
||||
def _showAlertSettings(settings):
|
||||
notifications = settings.get('notifications', [])
|
||||
count = len(notifications)
|
||||
entityPerformAction([Ent.ALERT_SETTINGS, None])
|
||||
i = 0
|
||||
for notification in notifications:
|
||||
i += 1
|
||||
printEntity([Ent.NOTIFICATION, None], i, count)
|
||||
Ind.Increment()
|
||||
showJSON(None, notification)
|
||||
Ind.Decrement()
|
||||
|
||||
# gam show alertsettings
|
||||
def doShowAlertSettings():
|
||||
checkForExtraneousArguments()
|
||||
user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail())
|
||||
if not ac:
|
||||
return
|
||||
try:
|
||||
settings = callGAPI(ac.v1beta1(), 'getSettings',
|
||||
throwReasons=GAPI.ALERT_THROW_REASONS)
|
||||
_showAlertSettings(settings)
|
||||
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied):
|
||||
userAlertsServiceNotEnabledWarning(user)
|
||||
|
||||
# gam update alertsettings <PubsubTopicName>
|
||||
def doUpdateAlertSettings(clear=False):
|
||||
if not clear:
|
||||
body = {'notifications':
|
||||
[{'cloudPubsubTopic': {'topicName': getString(Cmd.OB_PUBSUB_TOPIC_NAME)}}]}
|
||||
else:
|
||||
body = {'notifications': []}
|
||||
checkForExtraneousArguments()
|
||||
user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail())
|
||||
if not ac:
|
||||
return
|
||||
try:
|
||||
settings = callGAPI(ac.v1beta1(), 'updateSettings',
|
||||
throwReasons=GAPI.ALERT_THROW_REASONS,
|
||||
body=body)
|
||||
_showAlertSettings(settings)
|
||||
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied):
|
||||
userAlertsServiceNotEnabledWarning(user)
|
||||
|
||||
# gam clear alertsettings
|
||||
def doClearAlertSettings():
|
||||
doUpdateAlertSettings(clear=True)
|
||||
|
||||
ALERT_TIME_OBJECTS = {'createTime', 'startTime', 'endTime'}
|
||||
|
||||
def _showAlert(alert, FJQC, i=0, count=0):
|
||||
@@ -77185,7 +77235,8 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
||||
),
|
||||
'clear':
|
||||
(Act.CLEAR,
|
||||
{Cmd.ARG_CONTACT: doClearDomainContacts,
|
||||
{Cmd.ARG_ALERTSETTINGS: doClearAlertSettings,
|
||||
Cmd.ARG_CONTACT: doClearDomainContacts,
|
||||
}
|
||||
),
|
||||
'close':
|
||||
@@ -77506,6 +77557,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
||||
Cmd.ARG_ADMIN: doPrintShowAdmins,
|
||||
Cmd.ARG_ALERT: doPrintShowAlerts,
|
||||
Cmd.ARG_ALERTFEEDBACK: doPrintShowAlertFeedback,
|
||||
Cmd.ARG_ALERTSETTINGS: doShowAlertSettings,
|
||||
Cmd.ARG_BROWSER: doPrintShowBrowsers,
|
||||
Cmd.ARG_BROWSERTOKEN: doPrintShowBrowserTokens,
|
||||
Cmd.ARG_BUILDING: doPrintShowBuildings,
|
||||
@@ -77598,6 +77650,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
||||
'update':
|
||||
(Act.UPDATE,
|
||||
{Cmd.ARG_ADMINROLE: doCreateUpdateAdminRoles,
|
||||
Cmd.ARG_ALERTSETTINGS: doUpdateAlertSettings,
|
||||
Cmd.ARG_ALIAS: doCreateUpdateAliases,
|
||||
Cmd.ARG_BROWSER: doUpdateBrowsers,
|
||||
Cmd.ARG_BUILDING: doUpdateBuilding,
|
||||
|
||||
@@ -411,6 +411,7 @@ class GamCLArgs():
|
||||
ARG_ALERTFEEDBACK = 'alertfeedback'
|
||||
ARG_ALERTFEEDBACKS = 'alertfeedbacks'
|
||||
ARG_ALERTSFEEDBACK = 'alertsfeedback'
|
||||
ARG_ALERTSETTINGS = 'alertsettings'
|
||||
ARG_ALIAS = 'alias'
|
||||
ARG_ALIASES = 'aliases'
|
||||
ARG_ALIASDOMAIN = 'aliasdomain'
|
||||
@@ -1013,6 +1014,7 @@ class GamCLArgs():
|
||||
OB_PROJECT_ID_ENTITY = 'ProjectIDEntity'
|
||||
OB_PROPERTY_KEY = 'PropertyKey'
|
||||
OB_PROPERTY_VALUE = 'PropertyValue'
|
||||
OB_PUBSUB_TOPIC_NAME = 'PubSubTopicName'
|
||||
OB_QUERY = 'Query'
|
||||
OB_QUERY_ITEM = 'QueryItem'
|
||||
OB_QUERY_LIST = 'QueryList'
|
||||
|
||||
@@ -54,6 +54,7 @@ class GamEntity():
|
||||
ALERT_ID = 'alri'
|
||||
ALERT_FEEDBACK = 'alfb'
|
||||
ALERT_FEEDBACK_ID = 'alfi'
|
||||
ALERT_SETTINGS = 'alrs'
|
||||
ALIAS = 'alia'
|
||||
ALIAS_EMAIL = 'alie'
|
||||
ALIAS_TARGET = 'alit'
|
||||
@@ -285,10 +286,11 @@ class GamEntity():
|
||||
MIMETYPE = 'mime'
|
||||
MOBILE_DEVICE = 'mobi'
|
||||
NAME = 'name'
|
||||
NONEDITABLE_ALIAS = 'neal'
|
||||
NOTE = 'note'
|
||||
NOTE_ACL = 'nota'
|
||||
NOTES_ACLS = 'naac'
|
||||
NONEDITABLE_ALIAS = 'neal'
|
||||
NOTIFICATION = 'noti'
|
||||
OAUTH2_TXT_FILE = 'oaut'
|
||||
OAUTH2SERVICE_JSON_FILE = 'oau2'
|
||||
ORGANIZATIONAL_UNIT = 'orgu'
|
||||
@@ -414,6 +416,7 @@ class GamEntity():
|
||||
ALERT_ID: ['Alert IDs', 'Alert ID'],
|
||||
ALERT_FEEDBACK: ['Alert Feedbacks', 'Alert Feedback'],
|
||||
ALERT_FEEDBACK_ID: ['Alert Feedback IDs', 'Alert Feedback ID'],
|
||||
ALERT_SETTINGS: ['Alert Settings', 'Alert Settings'],
|
||||
ALIAS: ['Aliases', 'Alias'],
|
||||
ALIAS_EMAIL: ['Alias Emails', 'Alias Email'],
|
||||
ALIAS_TARGET: ['Alias Targets', 'Alias Target'],
|
||||
@@ -645,10 +648,11 @@ class GamEntity():
|
||||
MIMETYPE: ['MIME Types', 'MIME Type'],
|
||||
MOBILE_DEVICE: ['Mobile Devices', 'Mobile Device'],
|
||||
NAME: ['Names', 'Name'],
|
||||
NONEDITABLE_ALIAS: ['Non-Editable Aliases', 'Non-Editable Alias'],
|
||||
NOTE: ['Notes', 'Note'],
|
||||
NOTE_ACL: ['Note ACLs', 'Note ACL'],
|
||||
NOTES_ACLS: ["'Note's ACLs", "Note's ACLs"],
|
||||
NONEDITABLE_ALIAS: ['Non-Editable Aliases', 'Non-Editable Alias'],
|
||||
NOTIFICATION: ['Notifications', 'Notification'],
|
||||
OAUTH2_TXT_FILE: ['Client OAuth2 File', 'Client OAuth2 File'],
|
||||
OAUTH2SERVICE_JSON_FILE: ['Service Account OAuth2 File', 'Service Account OAuth2 File'],
|
||||
ORGANIZATIONAL_UNIT: ['Organizational Units', 'Organizational Unit'],
|
||||
|
||||
Reference in New Issue
Block a user