mirror of
https://github.com/Labelbase/Labelbase.git
synced 2026-08-14 12:43:22 +02:00
.
This commit is contained in:
parent
b92251e8f7
commit
ecac0aaaf3
5 changed files with 50 additions and 33 deletions
|
|
@ -1,24 +1,29 @@
|
|||
from sentry_sdk.scrubber import EventScrubber, DEFAULT_DENYLIST
|
||||
import logging
|
||||
logger = logging.getLogger('labelbase')
|
||||
|
||||
# https://docs.sentry.io/platforms/python/data-management/sensitive-data/
|
||||
# https://docs.sentry.io/platforms/python/configuration/filtering/
|
||||
# Define your custom denylist if needed
|
||||
custom_denylist = DEFAULT_DENYLIST # + ['custom_sensitive_key']
|
||||
event_scrubber = EventScrubber(denylist=custom_denylist)
|
||||
class MyEventScrubber:
|
||||
def scrub_event(self, event):
|
||||
# Scrub IP from request environment
|
||||
if 'request' in event and 'env' in event['request'] and 'REMOTE_ADDR' in event['request']['env']:
|
||||
event['request']['env']['REMOTE_ADDR'] = '0.0.0.0'
|
||||
|
||||
# Scrub IP from user information
|
||||
if 'user' in event and 'ip_address' in event['user']:
|
||||
event['user']['ip_address'] = '0.0.0.0'
|
||||
|
||||
def before_send(event, hint):
|
||||
try:
|
||||
from django.contrib.auth.models import User # keep import here
|
||||
user_data = event.get('user', {})
|
||||
user_id = user_data.get('id', 'No User ID')
|
||||
user = User.objects.get(id=user_id)
|
||||
# Check user's preference for error tracking
|
||||
if user.profile.use_sentry:
|
||||
event_scrubber.scrub_event(event)
|
||||
print(event)
|
||||
print ("return event {}".format(event))
|
||||
return event
|
||||
user_id = user_data.get('id', 0)
|
||||
if User.objects.filter(id=user_id).exists():
|
||||
user = User.objects.get(id=user_id)
|
||||
if user.profile.use_sentry:
|
||||
event_scrubber = MyEventScrubber()
|
||||
event_scrubber.scrub_event(event)
|
||||
#print(f"return event {event} for {user_id}")
|
||||
return event
|
||||
return None
|
||||
except Exception as e:
|
||||
print(e)
|
||||
pass
|
||||
return None
|
||||
return event
|
||||
|
|
|
|||
|
|
@ -47,17 +47,12 @@ SENTRY_DSN = proj_config.get("internal", "sentry_dsn")
|
|||
|
||||
sentry_sdk.init(
|
||||
dsn=SENTRY_DSN,
|
||||
#integrations=[
|
||||
# DjangoIntegration(),
|
||||
#],
|
||||
before_send=before_send,
|
||||
integrations=[
|
||||
DjangoIntegration(),
|
||||
],
|
||||
# Set traces_sample_rate to 1.0 to capture 100%
|
||||
# of transactions for performance monitoring.
|
||||
# We recommend adjusting this value in production.
|
||||
traces_sample_rate=1.0,
|
||||
# If you wish to associate users to errors (assuming you are using
|
||||
# django.contrib.auth) you may enable sending PII data.
|
||||
send_default_pii=True, # must be true, for before_send logic
|
||||
send_default_pii=True, # must be "True" here, will skip or omit in `before_send` callback
|
||||
)
|
||||
sentry_sdk.set_tag("version", "2.0.0")
|
||||
|
||||
|
|
@ -87,7 +82,7 @@ LOGGING = {
|
|||
'level': 'DEBUG',
|
||||
'propagate': True,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
# Application definition
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ class LabelDeleteView(DeleteView):
|
|||
error_url = "/#failed"
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
1/0
|
||||
self.object = self.get_object()
|
||||
if self.object.labelbase.user != self.request.user:
|
||||
return redirect(self.error_url)
|
||||
|
|
|
|||
|
|
@ -61,11 +61,11 @@
|
|||
<div class="carousel-item active">
|
||||
<h5>Sentry Error Tracking</h5>
|
||||
<p>
|
||||
We use Sentry for anonymized error tracking to improve service reliability. This is enabled by default in our new release. Rest assured, no personal data is collected.
|
||||
</p>
|
||||
<p>
|
||||
You can opt out of this feature in your <a href="{% url 'userprofile' %}">profile settings</a>.
|
||||
</p>
|
||||
We use Sentry for anonymized error tracking to improve service reliability. This is enabled by default in our new release. Rest assured, no personal data is collected.
|
||||
</p>
|
||||
<p>
|
||||
You can opt out of this feature in your <a class="ok-welcome-message" href="{% url 'userprofile' %}">profile settings</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!--div class="carousel-item active">
|
||||
|
|
@ -80,7 +80,7 @@
|
|||
<div class="carousel-item ">
|
||||
<h5>Mempool and Electrum Server</h5>
|
||||
<p>
|
||||
If you would like to set up your own Mempool or Electrum server for privacy reasons, please visit the dedicated settings section in your <a href="{% url 'userprofile' %}">profile settings</a>.
|
||||
If you would like to set up your own Mempool or Electrum server for privacy reasons, please visit the dedicated settings section in your <a class="ok-welcome-message" href="{% url 'userprofile' %}">profile settings</a>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.25 on 2024-03-21 13:43
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('userprofile', '0014_profile_has_seen_welcome_popup'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='profile',
|
||||
name='use_sentry',
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue