Add script injection option

This commit is contained in:
R. Miles McCain
2020-06-28 18:59:05 +00:00
parent 2e7620f1eb
commit 510df192d8
8 changed files with 60 additions and 5 deletions

View File

@@ -18,6 +18,7 @@ class ServiceForm(forms.ModelForm):
"hide_referrer_regex",
"origins",
"collaborators",
"script_inject"
]
widgets = {
"name": forms.TextInput(),
@@ -27,6 +28,7 @@ class ServiceForm(forms.ModelForm):
"collect_ips": forms.RadioSelect(choices=[(True, "Yes"), (False, "No")]),
"ignore_robots": forms.RadioSelect(choices=[(True, "Yes"), (False, "No")]),
"hide_referrer_regex": forms.TextInput(),
"script_inject": forms.Textarea(attrs={'class':'font-mono', 'rows': 5})
}
labels = {
"origins": "Allowed Hostnames",
@@ -35,6 +37,7 @@ class ServiceForm(forms.ModelForm):
"ignored_ips": "Ignored IP addresses",
"ignore_robots": "Ignore robots",
"hide_referrer_regex": "Hide specific referrers",
"script_inject": "Additional injected JS",
}
help_texts = {
"name": _("What should the service be called?"),
@@ -47,6 +50,7 @@ class ServiceForm(forms.ModelForm):
"ignored_ips": "A comma-separated list of IP addresses or IP ranges (IPv4 and IPv6) to exclude from tracking (e.g., '192.168.0.2, 127.0.0.1/32').",
"ignore_robots": "Should sessions generated by bots be excluded from tracking?",
"hide_referrer_regex": "Any referrers that match this <a href='https://regexr.com/'>RegEx</a> will not be listed in the referrer summary. Sessions will still be tracked normally. No effect if left blank.",
"script_inject": "Optional additional JavaScript to inject at the end of the Shynet script. This code will be injected on every page where this service is installed.",
}
collaborators = forms.CharField(

View File

@@ -13,4 +13,5 @@
{{form.ignore_robots|a17t}}
{{form.hide_referrer_regex|a17t}}
{{form.origins|a17t}}
{{form.script_inject|a17t}}
</details>

View File

@@ -84,6 +84,9 @@ class ServiceUpdateView(
cache.set(
f"service_origins_{self.object.uuid}", self.object.origins, timeout=3600
)
cache.set(
f"script_inject_{self.object.uuid}", self.object.script_inject, timeout=3600
)
return resp
def get_context_data(self, *args, **kwargs):