From 31cc9078d4263e145a2a58987ad18df2a8b1a3f6 Mon Sep 17 00:00:00 2001 From: DJ Gillespie Date: Wed, 26 Aug 2020 18:28:34 -0600 Subject: [PATCH] added email smtp to use for user authentication. --- core/settings/__init__.py | 12 +++++++++++- core/urls.py | 10 +++++++--- user/views.py | 12 ++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/core/settings/__init__.py b/core/settings/__init__.py index 6e3f0e3..96a81ce 100644 --- a/core/settings/__init__.py +++ b/core/settings/__init__.py @@ -11,6 +11,7 @@ https://docs.djangoproject.com/en/2.2/ref/settings/ """ import os +import smtplib try: from .local import * @@ -58,7 +59,7 @@ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', + #'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', @@ -135,3 +136,12 @@ USE_TZ = False # https://docs.djangoproject.com/en/2.2/howto/static-files/ STATIC_URL = '/static/' + + +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_USE_TLS = True +EMAIL_HOST = 'smtp.sendgrid.net' +EMAIL_HOST_PASSWORD = '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' +EMAIL_HOST_USER = 'apikey' +EMAIL_PORT = 587 # 587, 25 +DEFAULT_FROM_EMAIL = "no-reply@gillesdev.com" \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index 9549819..e0dd828 100644 --- a/core/urls.py +++ b/core/urls.py @@ -14,10 +14,12 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import include, path +from django.urls import include, path, re_path from rest_framework import routers -from user.views import (UserViewSet, - GroupViewSet, + +from user.views import (UserViewSet, + GroupViewSet, + CustomConfirmEmailView, ) from qrtr_account.views import (AccountViewSet, BankViewSet, @@ -48,6 +50,8 @@ apipatterns = [ path('', include(router.urls)), path('auth/', include('dj_rest_auth.urls'), name='auth'), path('auth/registration/', include('dj_rest_auth.registration.urls')), + re_path('rest-auth/registration/account-confirm-email/(?P.+)/', + CustomConfirmEmailView.as_view(), name='account_confirm_email'), path('auth/facebook/', FacebookLogin.as_view(), name='fb_login'), path('auth/twitter/', TwitterLogin.as_view(), name='twitter_login'), path('connection/', include('connection.urls'), name='Connection Settings'), diff --git a/user/views.py b/user/views.py index 6832c1a..f1d734e 100644 --- a/user/views.py +++ b/user/views.py @@ -2,6 +2,7 @@ from django.contrib.auth.models import Group from django.contrib.auth import get_user_model from rest_framework import viewsets from api.serializers import UserSerializer, GroupSerializer +from allauth.account.views import ConfirmEmailView class UserViewSet(viewsets.ModelViewSet): @@ -18,3 +19,14 @@ class GroupViewSet(viewsets.ReadOnlyModelViewSet): """ queryset = Group.objects.all() serializer_class = GroupSerializer + + +class CustomConfirmEmailView(ConfirmEmailView): + def get(self, *args, **kwargs): + try: + self.object = self.get_object() + except Http404: + self.object = None + user = get_user_model().objects.get(email=self.object.email_address.email) + redirect_url = reverse('user', args=(user.id,)) + return redirect(redirect_url) \ No newline at end of file