diff --git a/lib/hawat/migrations/versions/87a0d55f56d5_set_email_in_reporting_settings_for_.py b/lib/hawat/migrations/versions/87a0d55f56d5_set_email_in_reporting_settings_for_.py new file mode 100644 index 0000000000000000000000000000000000000000..763705f60b44265cef7b0dce231aa2887132909f --- /dev/null +++ b/lib/hawat/migrations/versions/87a0d55f56d5_set_email_in_reporting_settings_for_.py @@ -0,0 +1,35 @@ +"""set email in reporting settings for group name + +Revision ID: 87a0d55f56d5 +Revises: d76d19d30c2c +Create Date: 2023-02-21 11:00:12.434598 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '87a0d55f56d5' +down_revision = 'd76d19d30c2c' +branch_labels = None +depends_on = None + + +def upgrade(): + op.execute(""" +UPDATE settings_reporting +SET emails_low = ARRAY[groups.name] +FROM groups +WHERE + settings_reporting.emails_low = '{}' AND + settings_reporting.emails_medium = '{}' AND + settings_reporting.emails_high = '{}' AND + settings_reporting.emails_critical = '{}' AND + groups.id = settings_reporting.group_id""") + + +def downgrade(): + # Downgrade is not possible, but also is not necessary, + # because it doesn't break anything in the old code. + pass diff --git a/lib/mentat/module/netmngr.py b/lib/mentat/module/netmngr.py index a919e9822cd6cdecc186ea460fc11afa96d300dc..4cfec0abe5d3bd2f43fa8182268862e3f3d9d95c 100644 --- a/lib/mentat/module/netmngr.py +++ b/lib/mentat/module/netmngr.py @@ -506,19 +506,15 @@ class MentatNetmngrScript(mentat.script.fetcher.FetcherScript): sqlgrp.settings_rep = SettingsReportingModel() self.logger.warning("'%s' Creating new abuse group.", gkey) - checked_group_name = False + group_emails_set = False for network in [network for networks in wi_file_data[group_name].values() for network in networks]: - # If there are multiple emails in this abuse group or lowest severity is not low then save - # emails in the reporting settings. By default, if the group in the database doesn't have - # any emails set in the reporting settings then the name of the abuse group is used as - # email address for every severity. - if not checked_group_name: - if ',' in group_name or any(severity in network for severity in ['emails_medium', 'emails_high', 'emails_critical']): - sqlgrp.settings_rep.emails_low = network.get('emails_low', None) - sqlgrp.settings_rep.emails_medium = network.get('emails_medium', None) - sqlgrp.settings_rep.emails_high = network.get('emails_high', None) - sqlgrp.settings_rep.emails_critical = network.get('emails_critical', None) - checked_group_name = True + if not group_emails_set: + sqlgrp.settings_rep.emails_low = network.get('emails_low', None) + sqlgrp.settings_rep.emails_medium = network.get('emails_medium', None) + sqlgrp.settings_rep.emails_high = network.get('emails_high', None) + sqlgrp.settings_rep.emails_critical = network.get('emails_critical', None) + group_emails_set = True + sqlnet = networkmodel_from_typeddict( network, {'description': 'Network created automatically by mentat-netmngr.py utility.'}