From 2eb5feaa8f547e64ecf44a3412f439002bff83c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Casaj=C3=BAs?= Date: Mon, 8 Apr 2024 15:05:51 +0200 Subject: [PATCH] Small improvements (#2082) * Update logs with more relevant info for debugging purposes * Improved logs for alias creation rate-limit * Reduce sudo time to 120 secs * log fixes * Fix missing object to add to the session --- app/alias_utils.py | 25 +++++++++++++------------ app/dashboard/views/enter_sudo.py | 2 +- app/dashboard/views/index.py | 2 +- app/rate_limiter.py | 4 +++- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/app/alias_utils.py b/app/alias_utils.py index b02cb1fc..40cc607c 100644 --- a/app/alias_utils.py +++ b/app/alias_utils.py @@ -308,28 +308,29 @@ def delete_alias(alias: Alias, user: User): Delete an alias and add it to either global or domain trash Should be used instead of Alias.delete, DomainDeletedAlias.create, DeletedAlias.create """ - # save deleted alias to either global or domain trash + LOG.i(f"User {user} has deleted alias {alias}") + # save deleted alias to either global or domain tra if alias.custom_domain_id: if not DomainDeletedAlias.get_by( email=alias.email, domain_id=alias.custom_domain_id ): - LOG.d("add %s to domain %s trash", alias, alias.custom_domain_id) - Session.add( - DomainDeletedAlias( - user_id=user.id, - email=alias.email, - domain_id=alias.custom_domain_id, - ) + domain_deleted_alias = DomainDeletedAlias( + user_id=user.id, + email=alias.email, + domain_id=alias.custom_domain_id, ) + Session.add(domain_deleted_alias) Session.commit() - + LOG.i( + f"Moving {alias} to domain {alias.custom_domain_id} trash {domain_deleted_alias}" + ) else: if not DeletedAlias.get_by(email=alias.email): - LOG.d("add %s to global trash", alias) - Session.add(DeletedAlias(email=alias.email)) + deleted_alias = DeletedAlias(email=alias.email) + Session.add(deleted_alias) Session.commit() + LOG.i(f"Moving {alias} to global trash {deleted_alias}") - LOG.i("delete alias %s", alias) Alias.filter(Alias.id == alias.id).delete() Session.commit() diff --git a/app/dashboard/views/enter_sudo.py b/app/dashboard/views/enter_sudo.py index 3910873e..8f6b80ab 100644 --- a/app/dashboard/views/enter_sudo.py +++ b/app/dashboard/views/enter_sudo.py @@ -14,7 +14,7 @@ from app.models import PartnerUser, SocialAuth from app.proton.utils import get_proton_partner from app.utils import sanitize_next_url -_SUDO_GAP = 900 +_SUDO_GAP = 120 class LoginForm(FlaskForm): diff --git a/app/dashboard/views/index.py b/app/dashboard/views/index.py index 8422b06d..cadcaeea 100644 --- a/app/dashboard/views/index.py +++ b/app/dashboard/views/index.py @@ -141,7 +141,7 @@ def index(): ) if request.form.get("form-name") == "delete-alias": - LOG.d("delete alias %s", alias) + LOG.i(f"User {current_user} requested deletion of alias {alias}") email = alias.email alias_utils.delete_alias(alias, current_user) flash(f"Alias {email} has been deleted", "success") diff --git a/app/rate_limiter.py b/app/rate_limiter.py index 40b076d5..a1dcfbb8 100644 --- a/app/rate_limiter.py +++ b/app/rate_limiter.py @@ -30,7 +30,9 @@ def check_bucket_limit( try: value = lock_redis.incr(bucket_lock_name, bucket_seconds) if value > max_hits: - LOG.i(f"Rate limit hit for {bucket_lock_name} -> {value}/{max_hits}") + LOG.i( + f"Rate limit hit for {lock_name} (bucket id {bucket_id}) -> {value}/{max_hits}" + ) newrelic.agent.record_custom_event( "BucketRateLimit", {"lock_name": lock_name, "bucket_seconds": bucket_seconds},