File: adapters.py

package info (click to toggle)
django-allauth 65.15.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,524 kB
  • sloc: python: 45,207; javascript: 3,335; xml: 849; makefile: 218; sh: 6
file content (52 lines) | stat: -rw-r--r-- 1,839 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import typing

from django.contrib.auth import get_user_model
from django.core.exceptions import ValidationError

from allauth.account.adapter import DefaultAccountAdapter
from tests.projects.common import phone_stub


messagesoutbox = []


class AccountAdapter(DefaultAccountAdapter):
    def set_phone(self, user, phone: str, verified: bool):
        phone_stub.set_phone(user.pk, phone, verified)

    def get_phone(self, user) -> tuple[str, bool] | None:
        return phone_stub.get_phone(user.pk)

    def set_phone_verified(self, user, phone: str):
        phone_stub.set_phone(user.pk, phone, True)

    def get_user_by_phone(self, phone):
        user_id = phone_stub.get_user_id_by_phone(phone)
        if user_id is None:
            return None
        User = get_user_model()
        return User.objects.filter(pk=user_id).first()

    def send_verification_code_sms(self, user, phone: str, code: str, **kwargs):
        phone_stub.send_verification_code_sms(user, phone, code)

    def send_unknown_account_sms(self, phone: str, **kwargs: typing.Any) -> None:
        phone_stub.send_unknown_account_sms(phone)

    def send_account_already_exists_sms(self, phone: str, **kwargs: typing.Any) -> None:
        phone_stub.send_account_already_exists_sms(phone)

    def add_message(self, *args, **kwargs):
        message_template = kwargs.get("message_template")
        message = None
        if message_template is None:
            message = kwargs.get("message")
            if message is None:
                message_template = args[2]
        messagesoutbox.append(dict(message=message, message_template=message_template))
        return super().add_message(*args, **kwargs)

    def clean_email(self, email):
        if email == "invalid@test.email":
            raise ValidationError("testing")
        return email