Skip to content

Commit ac1936e

Browse files
authored
Merge pull request #918 from basedosdados/feat/account_service
feat: restringir adição de usuário a grupos do Google apenas para amb…
2 parents a7ef738 + b9cfde2 commit ac1936e

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

backend/apps/account_payment/webhooks.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from django.conf import settings
3+
from django.core.exceptions import ObjectDoesNotExist
4+
from django.db.models import Q
35
from djstripe import webhooks
46
from djstripe.models import Event
57
from djstripe.models import Subscription as DJStripeSubscription
@@ -9,15 +11,14 @@
911
from loguru import logger
1012
from stripe import Customer as StripeCustomer
1113
from stripe import Subscription as StripeSubscription
12-
from django.db.models import Q
13-
from django.core.exceptions import ObjectDoesNotExist
1414

1515
from backend.apps.account.models import Account, Subscription
1616
from backend.custom.client import send_discord_message as send
17-
from backend.custom.environment import get_backend_url, is_dev, is_stg
17+
from backend.custom.environment import get_backend_url, is_dev
1818

1919
logger = logger.bind(module="payment")
2020

21+
2122
def _normalize_plus(email: str) -> str:
2223
"""Normaliza: trim, lower e remove +alias antes do @."""
2324
email = email.strip().lower()
@@ -26,6 +27,7 @@ def _normalize_plus(email: str) -> str:
2627
local = local.split("+", 1)[0]
2728
return f"{local}@{domain}"
2829

30+
2931
def get_subscription(event: Event) -> Subscription:
3032
"""Get internal subscription model, mirror of stripe"""
3133
logger.info(f"Procurando inscrição interna do cliente {event.customer.email}")
@@ -67,16 +69,18 @@ def get_service() -> Resource:
6769

6870
def add_user(email: str, account: Account = None, group_key: str = None, role: str = "MEMBER"):
6971
"""Add user to google group"""
70-
if is_dev() or is_stg():
72+
if is_dev():
7173
if account is None:
7274
try:
7375
normalized_email = _normalize_plus(email)
74-
account = Account.objects.get(Q(email__iexact=email) | Q(email__iexact=normalized_email))
76+
account = Account.objects.get(
77+
Q(email__iexact=email) | Q(email__iexact=normalized_email)
78+
)
7579
except Account.DoesNotExist:
7680
account = None
7781

7882
if not (account and account.is_admin):
79-
logger.info(f"Ignorando adição do usuário '{email}' em ambiente de dev/staging pois não é admin.")
83+
logger.info(f"Ignorando adição do usuário '{email}'em dev/staging.")
8084
return
8185

8286
if not group_key:
@@ -96,6 +100,7 @@ def add_user(email: str, account: Account = None, group_key: str = None, role: s
96100
logger.error(e)
97101
raise e
98102

103+
99104
def remove_user(email: str, group_key: str = None) -> None:
100105
"""Remove user from Google Group"""
101106
if not email or "@" not in email:
@@ -107,10 +112,10 @@ def remove_user(email: str, group_key: str = None) -> None:
107112

108113
try:
109114
user = Account.objects.get(
110-
Q(email__iexact=raw_email) |
111-
Q(email__iexact=base_email) |
112-
Q(gcp_email__iexact=raw_email) |
113-
Q(gcp_email__iexact=base_email)
115+
Q(email__iexact=raw_email)
116+
| Q(email__iexact=base_email)
117+
| Q(gcp_email__iexact=raw_email)
118+
| Q(gcp_email__iexact=base_email)
114119
)
115120
except ObjectDoesNotExist:
116121
logger.warning(f"Usuário {raw_email} não encontrado no banco. Prosseguindo com remoção.")

0 commit comments

Comments
 (0)