From b7df911c36329f587d86d05b9300ba4c3b1ff162 Mon Sep 17 00:00:00 2001 From: Irwan Cahyono Date: Thu, 7 Aug 2025 09:14:59 +0700 Subject: [PATCH] email aktivasi, konfirmasi --- freekake_api/core/email.py | 7 ++++++ .../core/templates/email/activation.html | 24 +++++++++++++++++++ .../core/templates/email/confirmation.html | 21 ++++++++++++++++ freekake_api/freekake_api/settings.py | 22 +++++++++-------- 4 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 freekake_api/core/email.py create mode 100644 freekake_api/core/templates/email/activation.html create mode 100644 freekake_api/core/templates/email/confirmation.html diff --git a/freekake_api/core/email.py b/freekake_api/core/email.py new file mode 100644 index 0000000..772e932 --- /dev/null +++ b/freekake_api/core/email.py @@ -0,0 +1,7 @@ +from djoser import email + +class ActivationEmail(email.ActivationEmail): + template_name = 'email/activation.html' + +class ConfirmationEmail(email.ConfirmationEmail): + template_name = 'email/confirmation.html' diff --git a/freekake_api/core/templates/email/activation.html b/freekake_api/core/templates/email/activation.html new file mode 100644 index 0000000..c84f16c --- /dev/null +++ b/freekake_api/core/templates/email/activation.html @@ -0,0 +1,24 @@ +{% load i18n %} + +{% block subject %} +{% blocktrans %}Aktivasi Akun {{ site_name }}{% endblocktrans %} +{% endblock subject %} + +{% block text_body %} +{% blocktrans %}Terima kasih sudah mendaftar di {{ site_name }}. Kamu perlu mengaktifkan akun kamu untuk dapat memanfaatkan lebih banyak fitur di {{ site_name }}.{% endblocktrans %} + +{% trans "Klik link di bawah ini untuk mengaktifkan akun kamu:" %} +{{ protocol }}://{{ domain }}/{{ url|safe }} + +{% blocktrans %}The {{ site_name }} team{% endblocktrans %} +{% endblock text_body %} + +{% block html_body %} +

{% blocktrans %}Terima kasih suda mendaftar di {{ site_name }}. Kamu perlu mengaktifkan akun kamu untuk dapat memanfaatkan lebih banyak fitur di {{ site_name }}.{% endblocktrans %}

+ +

{% trans "Klik link di bawah ini untuk mengaktifkan akun kamu:" %}

+

{{ protocol }}://{{ domain }}/{{ url|safe }}

+ +

{% blocktrans %}The {{ site_name }} team{% endblocktrans %}

+ +{% endblock html_body %} \ No newline at end of file diff --git a/freekake_api/core/templates/email/confirmation.html b/freekake_api/core/templates/email/confirmation.html new file mode 100644 index 0000000..8b0c4e4 --- /dev/null +++ b/freekake_api/core/templates/email/confirmation.html @@ -0,0 +1,21 @@ +{% load i18n %} + +{% block subject %} +{% blocktrans %}{{ site_name }} - Akun kamu telah aktif!{% endblocktrans %} +{% endblock %} + +{% block text_body %} +{% blocktrans %}Akun kamu telah aktif dan siap digunakan untuk belajar dan bermain melalui {{ site_name }}!{% endblocktrans %} + +{% blocktrans %}Terima kasih sudah mendaftar di {{ site_name }}!{% endblocktrans %} + +{% blocktrans %}The {{ site_name }} team{% endblocktrans %} +{% endblock text_body %} + +{% block html_body %} +

{% blocktrans %}"Akun kamu telah aktif dan siap digunakan untuk belajar dan bermain melalui {{ site_name }}!{% endblocktrans %}

+ +

{% blocktrans %}Terima kasih sudah mendaftar di {{ site_name }}!{% endblocktrans %}

+ +

{% blocktrans %}The {{ site_name }} team{% endblocktrans %}

+{% endblock html_body %} \ No newline at end of file diff --git a/freekake_api/freekake_api/settings.py b/freekake_api/freekake_api/settings.py index 3804214..359b1b5 100644 --- a/freekake_api/freekake_api/settings.py +++ b/freekake_api/freekake_api/settings.py @@ -74,7 +74,8 @@ ROOT_URLCONF = 'freekake_api.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + #'DIRS': [], + 'DIRS': [BASE_DIR / 'core' / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -179,11 +180,19 @@ OAUTH2_PROVIDER = { LOGIN_URL = '/admin/login/' DJOSER = { + 'SERIALIZERS': {}, + 'TOKEN_MODEL': None, 'PASSWORD_RESET_CONFIRM_URL': '#/password/reset/confirm/{uid}/{token}', 'USERNAME_RESET_CONFIRM_URL': '#/username/reset/confirm/{uid}/{token}', - 'ACTIVATION_URL': '#/activate/{uid}/{token}', + 'ACTIVATION_URL': 'auth/activation/{uid}/{token}/', 'SEND_ACTIVATION_EMAIL': True, - 'SERIALIZERS': {}, + 'SEND_CONFIRMATION_EMAIL': True, + 'EMAIL_FRONTEND_SITE_NAME': 'Freekake', + 'EMAIL_FRONTEND_DOMAIN': config('FRONTEND_URL', default='http://localhost:3000'), + 'EMAIL': { + 'activation': 'core.email.ActivationEmail', + 'confirmation': 'core.email.ConfirmationEmail', + }, } INTERNAL_IPS = [ @@ -199,13 +208,6 @@ SIMPLE_JWT = { 'AUTH_HEADER_TYPES': ('JWT',), } -DJOSER = { - 'TOKEN_MODEL': None, - 'SEND_ACTIVATION_EMAIL': True, - 'ACTIVATION_URL': 'accounts/activation/{uid}/{token}/', - "SEND_CONFIRMATION_EMAIL": True, -} - SIMPLE_JWT = { "ACCESS_TOKEN_LIFETIME": timedelta(minutes=5), "REFRESH_TOKEN_LIFETIME": timedelta(days=1),