mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-05 05:11:35 +00:00
Phase 1: Replace _getMain() with direct util/ imports
This commit is contained in:
@@ -12,6 +12,27 @@ from gamlib import glgapi as GAPI
|
||||
from gamlib import glglobals as GM
|
||||
from gamlib import glindent
|
||||
from gamlib import glmsgs as Msg
|
||||
from gam.util.access import entityUnknownWarning
|
||||
from gam.util.api import callGData, getEmailAuditObject
|
||||
from gam.util.args import (
|
||||
YYYYMMDD_HHMM_FORMAT,
|
||||
checkForExtraneousArguments,
|
||||
getArgument,
|
||||
getEmailAddress,
|
||||
getString,
|
||||
getYYYYMMDD_HHMM,
|
||||
normalizeEmailAddressOrUID,
|
||||
splitEmailAddress,
|
||||
)
|
||||
from gam.util.display import (
|
||||
entityActionFailedWarning,
|
||||
entityActionPerformed,
|
||||
entityPerformActionNumItems,
|
||||
printKeyValueList,
|
||||
printKeyValueListWithCount,
|
||||
)
|
||||
from gam.util.errors import invalidArgumentExit, unknownArgumentExit
|
||||
from gam.util.output import setSysExitRC
|
||||
|
||||
Act = glaction.GamAction()
|
||||
Ent = glentity.GamEntity()
|
||||
@@ -31,49 +52,49 @@ def __getattr__(name):
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
|
||||
def getAuditParameters(emailAddressRequired=True, requestIdRequired=True, destUserRequired=False):
|
||||
auditObject = _getMain().getEmailAuditObject()
|
||||
emailAddress = _getMain().getEmailAddress(noUid=True, optional=not emailAddressRequired)
|
||||
auditObject = getEmailAuditObject()
|
||||
emailAddress = getEmailAddress(noUid=True, optional=not emailAddressRequired)
|
||||
parameters = {}
|
||||
if emailAddress:
|
||||
parameters['auditUser'] = emailAddress
|
||||
parameters['auditUserName'], auditObject.domain = _getMain().splitEmailAddress(emailAddress)
|
||||
parameters['auditUserName'], auditObject.domain = splitEmailAddress(emailAddress)
|
||||
if requestIdRequired:
|
||||
parameters['requestId'] = _getMain().getString(Cmd.OB_REQUEST_ID)
|
||||
parameters['requestId'] = getString(Cmd.OB_REQUEST_ID)
|
||||
if destUserRequired:
|
||||
destEmailAddress = _getMain().getEmailAddress(noUid=True)
|
||||
destEmailAddress = getEmailAddress(noUid=True)
|
||||
parameters['auditDestUser'] = destEmailAddress
|
||||
parameters['auditDestUserName'], destDomain = _getMain().splitEmailAddress(destEmailAddress)
|
||||
parameters['auditDestUserName'], destDomain = splitEmailAddress(destEmailAddress)
|
||||
if auditObject.domain != destDomain:
|
||||
Cmd.Backup()
|
||||
_getMain().invalidArgumentExit(f'{parameters["auditDestUserName"]}@{auditObject.domain}')
|
||||
invalidArgumentExit(f'{parameters["auditDestUserName"]}@{auditObject.domain}')
|
||||
return (auditObject, parameters)
|
||||
|
||||
# Audit monitor command utilities
|
||||
def _showMailboxMonitorRequestStatus(request, i=0, count=0):
|
||||
_getMain().printKeyValueListWithCount(['Destination', _getMain().normalizeEmailAddressOrUID(request['destUserName'])], i, count)
|
||||
printKeyValueListWithCount(['Destination', normalizeEmailAddressOrUID(request['destUserName'])], i, count)
|
||||
Ind.Increment()
|
||||
_getMain().printKeyValueList(['Begin', request.get('beginDate', 'immediately')])
|
||||
_getMain().printKeyValueList(['End', request['endDate']])
|
||||
_getMain().printKeyValueList(['Monitor Incoming', request['outgoingEmailMonitorLevel']])
|
||||
_getMain().printKeyValueList(['Monitor Outgoing', request['incomingEmailMonitorLevel']])
|
||||
_getMain().printKeyValueList(['Monitor Chats', request.get('chatMonitorLevel', 'NONE')])
|
||||
_getMain().printKeyValueList(['Monitor Drafts', request.get('draftMonitorLevel', 'NONE')])
|
||||
printKeyValueList(['Begin', request.get('beginDate', 'immediately')])
|
||||
printKeyValueList(['End', request['endDate']])
|
||||
printKeyValueList(['Monitor Incoming', request['outgoingEmailMonitorLevel']])
|
||||
printKeyValueList(['Monitor Outgoing', request['incomingEmailMonitorLevel']])
|
||||
printKeyValueList(['Monitor Chats', request.get('chatMonitorLevel', 'NONE')])
|
||||
printKeyValueList(['Monitor Drafts', request.get('draftMonitorLevel', 'NONE')])
|
||||
Ind.Decrement()
|
||||
|
||||
# gam audit monitor create <EmailAddress> <DestEmailAddress> [begin <DateTime>] [end <DateTime>] [incoming_headers] [outgoing_headers] [nochats] [nodrafts] [chat_headers] [draft_headers]
|
||||
def doCreateMonitor():
|
||||
auditObject, parameters = getAuditParameters(emailAddressRequired=True, requestIdRequired=False, destUserRequired=True)
|
||||
#end_date defaults to 30 days in the future...
|
||||
end_date = GM.Globals[GM.DATETIME_NOW].shift(days=30).strftime(_getMain().YYYYMMDD_HHMM_FORMAT)
|
||||
end_date = GM.Globals[GM.DATETIME_NOW].shift(days=30).strftime(YYYYMMDD_HHMM_FORMAT)
|
||||
begin_date = None
|
||||
incoming_headers_only = outgoing_headers_only = drafts_headers_only = chats_headers_only = False
|
||||
drafts = chats = True
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = _getMain().getArgument()
|
||||
myarg = getArgument()
|
||||
if myarg == 'begin':
|
||||
begin_date = _getMain().getYYYYMMDD_HHMM()
|
||||
begin_date = getYYYYMMDD_HHMM()
|
||||
elif myarg == 'end':
|
||||
end_date = _getMain().getYYYYMMDD_HHMM()
|
||||
end_date = getYYYYMMDD_HHMM()
|
||||
elif myarg == 'incomingheaders':
|
||||
incoming_headers_only = True
|
||||
elif myarg == 'outgoingheaders':
|
||||
@@ -87,54 +108,54 @@ def doCreateMonitor():
|
||||
elif myarg == 'draftheaders':
|
||||
drafts_headers_only = True
|
||||
else:
|
||||
_getMain().unknownArgumentExit()
|
||||
unknownArgumentExit()
|
||||
try:
|
||||
request = _getMain().callGData(auditObject, 'createEmailMonitor',
|
||||
request = callGData(auditObject, 'createEmailMonitor',
|
||||
throwErrors=[GDATA.INVALID_VALUE, GDATA.INVALID_INPUT, GDATA.DOES_NOT_EXIST, GDATA.INVALID_DOMAIN],
|
||||
source_user=parameters['auditUserName'], destination_user=parameters['auditDestUserName'], end_date=end_date, begin_date=begin_date,
|
||||
incoming_headers_only=incoming_headers_only, outgoing_headers_only=outgoing_headers_only,
|
||||
drafts=drafts, drafts_headers_only=drafts_headers_only, chats=chats, chats_headers_only=chats_headers_only)
|
||||
_getMain().entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None])
|
||||
entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None])
|
||||
Ind.Increment()
|
||||
_showMailboxMonitorRequestStatus(request)
|
||||
Ind.Decrement()
|
||||
except (GDATA.invalidValue, GDATA.invalidInput) as e:
|
||||
_getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
except (GDATA.doesNotExist, GDATA.invalidDomain) as e:
|
||||
if str(e).find(parameters['auditUser']) != -1:
|
||||
_getMain().entityUnknownWarning(Ent.USER, parameters['auditUser'])
|
||||
entityUnknownWarning(Ent.USER, parameters['auditUser'])
|
||||
else:
|
||||
_getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
|
||||
# gam audit monitor delete <EmailAddress> <DestEmailAddress>
|
||||
def doDeleteMonitor():
|
||||
auditObject, parameters = getAuditParameters(emailAddressRequired=True, requestIdRequired=False, destUserRequired=True)
|
||||
_getMain().checkForExtraneousArguments()
|
||||
checkForExtraneousArguments()
|
||||
try:
|
||||
_getMain().callGData(auditObject, 'deleteEmailMonitor',
|
||||
callGData(auditObject, 'deleteEmailMonitor',
|
||||
throwErrors=[GDATA.INVALID_INPUT, GDATA.DOES_NOT_EXIST, GDATA.INVALID_DOMAIN],
|
||||
source_user=parameters['auditUserName'], destination_user=parameters['auditDestUserName'])
|
||||
_getMain().entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, parameters['auditDestUser']])
|
||||
entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, parameters['auditDestUser']])
|
||||
except GDATA.invalidInput as e:
|
||||
_getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
except (GDATA.doesNotExist, GDATA.invalidDomain) as e:
|
||||
if str(e).find(parameters['auditUser']) != -1:
|
||||
_getMain().entityUnknownWarning(Ent.USER, parameters['auditUser'])
|
||||
entityUnknownWarning(Ent.USER, parameters['auditUser'])
|
||||
else:
|
||||
_getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e))
|
||||
|
||||
# gam audit monitor list <EmailAddress>
|
||||
def doShowMonitors():
|
||||
auditObject, parameters = getAuditParameters(emailAddressRequired=True, requestIdRequired=False, destUserRequired=False)
|
||||
_getMain().checkForExtraneousArguments()
|
||||
checkForExtraneousArguments()
|
||||
try:
|
||||
results = _getMain().callGData(auditObject, 'getEmailMonitors',
|
||||
results = callGData(auditObject, 'getEmailMonitors',
|
||||
throwErrors=[GDATA.DOES_NOT_EXIST, GDATA.INVALID_DOMAIN],
|
||||
user=parameters['auditUserName'])
|
||||
jcount = len(results) if (results) else 0
|
||||
_getMain().entityPerformActionNumItems([Ent.USER, parameters['auditUser']], jcount, Ent.AUDIT_MONITOR_REQUEST)
|
||||
entityPerformActionNumItems([Ent.USER, parameters['auditUser']], jcount, Ent.AUDIT_MONITOR_REQUEST)
|
||||
if jcount == 0:
|
||||
_getMain().setSysExitRC(_getMain().NO_ENTITIES_FOUND_RC)
|
||||
setSysExitRC(_getMain().NO_ENTITIES_FOUND_RC)
|
||||
return
|
||||
Ind.Increment()
|
||||
j = 0
|
||||
@@ -143,6 +164,6 @@ def doShowMonitors():
|
||||
_showMailboxMonitorRequestStatus(request, j, jcount)
|
||||
Ind.Decrement()
|
||||
except (GDATA.doesNotExist, GDATA.invalidDomain):
|
||||
_getMain().entityUnknownWarning(Ent.USER, parameters['auditUser'])
|
||||
entityUnknownWarning(Ent.USER, parameters['auditUser'])
|
||||
|
||||
# gam whatis <EmailItem> [noinfo] [noinvitablecheck]
|
||||
|
||||
Reference in New Issue
Block a user