From 567cbce9caf92e778e183ecffeaea4a0fdcb1815 Mon Sep 17 00:00:00 2001 From: iuime <41294179+iuime@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:19:44 +0800 Subject: [PATCH 01/10] Update models.py Add Send Notifications to Lark --- web/scanEngine/models.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/scanEngine/models.py b/web/scanEngine/models.py index 89a7cbb31..3e5c6d07f 100644 --- a/web/scanEngine/models.py +++ b/web/scanEngine/models.py @@ -70,10 +70,12 @@ class InterestingLookupModel(models.Model): class Notification(models.Model): id = models.AutoField(primary_key=True) send_to_slack = models.BooleanField(default=False) + send_to_lark = models.BooleanField(default=False) send_to_discord = models.BooleanField(default=False) send_to_telegram = models.BooleanField(default=False) slack_hook_url = models.CharField(max_length=200, null=True, blank=True) + lark_hook_url = models.CharField(max_length=200, null=True, blank=True) discord_hook_url = models.CharField(max_length=200, null=True, blank=True) telegram_bot_token = models.CharField(max_length=100, null=True, blank=True) telegram_bot_chat_id = models.CharField(max_length=100, null=True, blank=True) From 738dc06b2525a59ca4a1bf6cabfaae14eaab7eec Mon Sep 17 00:00:00 2001 From: iuime <41294179+iuime@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:26:26 +0800 Subject: [PATCH 02/10] Update forms.py Add Send Notifications to Lark --- web/scanEngine/forms.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/web/scanEngine/forms.py b/web/scanEngine/forms.py index b4fb5455a..4eddf0d92 100644 --- a/web/scanEngine/forms.py +++ b/web/scanEngine/forms.py @@ -183,6 +183,23 @@ class Meta: "placeholder": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX", })) + send_to_lark = forms.BooleanField( + required=False, + widget=forms.CheckboxInput( + attrs={ + "class": "form-check-input", + "id": "lark_checkbox", + })) + + lark_hook_url = forms.CharField( + required=False, + widget=forms.TextInput( + attrs={ + "class": "form-control", + "id": "lark_hook_url", + "placeholder": "https://open.larksuite.com/open-apis/bot/v2/hook/XXXXXXXXXXXXXXXXXXXXXXXX", + })) + send_to_discord = forms.BooleanField( required=False, widget=forms.CheckboxInput( @@ -280,10 +297,12 @@ class Meta: def set_value(self, key): self.initial['send_to_slack'] = key.send_to_slack + self.initial['send_to_lark'] = key.send_to_lark self.initial['send_to_discord'] = key.send_to_discord self.initial['send_to_telegram'] = key.send_to_telegram self.initial['slack_hook_url'] = key.slack_hook_url + self.initial['lark_hook_url'] = key.lark_hook_url self.initial['discord_hook_url'] = key.discord_hook_url self.initial['telegram_bot_token'] = key.telegram_bot_token self.initial['telegram_bot_chat_id'] = key.telegram_bot_chat_id @@ -298,6 +317,8 @@ def set_value(self, key): if not key.send_to_slack: self.fields['slack_hook_url'].widget.attrs['readonly'] = True + if not key.send_to_lark: + self.fields['lark_hook_url'].widget.attrs['readonly'] = True if not key.send_to_discord: self.fields['discord_hook_url'].widget.attrs['readonly'] = True if not key.send_to_telegram: @@ -307,10 +328,12 @@ def set_value(self, key): def set_initial(self): self.initial['send_to_slack'] = False + self.initial['send_to_lark'] = False self.initial['send_to_discord'] = False self.initial['send_to_telegram'] = False self.fields['slack_hook_url'].widget.attrs['readonly'] = True + self.fields['lark_hook_url'].widget.attrs['readonly'] = True self.fields['discord_hook_url'].widget.attrs['readonly'] = True self.fields['telegram_bot_token'].widget.attrs['readonly'] = True self.fields['telegram_bot_chat_id'].widget.attrs['readonly'] = True From 7850694a262f174e290272a59472349f587fd244 Mon Sep 17 00:00:00 2001 From: iuime <41294179+iuime@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:34:15 +0800 Subject: [PATCH 03/10] Update common_func.py Add Send Notifications to Lark --- web/reNgine/common_func.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/web/reNgine/common_func.py b/web/reNgine/common_func.py index cb0f1ad11..a057e5f33 100644 --- a/web/reNgine/common_func.py +++ b/web/reNgine/common_func.py @@ -572,6 +572,23 @@ def send_slack_message(message): hook_url = notif.slack_hook_url requests.post(url=hook_url, data=json.dumps(message), headers=headers) +def send_lark_message(message): + """Send lark message. + + Args: + message (str): Message. + """ + headers = {'content-type': 'application/json'} + message = {'msg_type': 'text', 'content':{'text': message}} + notif = Notification.objects.first() + do_send = ( + notif and + notif.send_to_lark and + notif.lark_hook_url) + if not do_send: + return + hook_url = notif.lark_hook_url + requests.post(url=hook_url, data=json.dumps(message), headers=headers) def send_discord_message( message, From daf11b2698ff77694bbbb54f3d2b2970ff760050 Mon Sep 17 00:00:00 2001 From: iuime <41294179+iuime@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:07:14 +0800 Subject: [PATCH 04/10] Update notification.html Add Send Notifications to Lark --- .../scanEngine/settings/notification.html | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/web/scanEngine/templates/scanEngine/settings/notification.html b/web/scanEngine/templates/scanEngine/settings/notification.html index 8259884e7..215b38cd1 100644 --- a/web/scanEngine/templates/scanEngine/settings/notification.html +++ b/web/scanEngine/templates/scanEngine/settings/notification.html @@ -51,6 +51,29 @@