diff --git a/amadeus/settings.py b/amadeus/settings.py index ba29bde..c1c756c 100644 --- a/amadeus/settings.py +++ b/amadeus/settings.py @@ -144,6 +144,7 @@ MEDIA_URL = '/uploads/' LOGIN_REDIRECT_URL = 'app:index' LOGIN_URL = 'core:home' AUTH_USER_MODEL = 'users.User' + AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', ] @@ -153,7 +154,12 @@ LOGS_URL = 'logs/' #https://github.com/squ1b3r/Djaneiro +# E-mail +EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' +DEFAULT_FROM_EMAIL = 'admin@admin.com' + + try: from .local_settings import * except ImportError: - pass \ No newline at end of file + pass diff --git a/core/templates/index.html b/core/templates/index.html index a1aa11b..b897022 100644 --- a/core/templates/index.html +++ b/core/templates/index.html @@ -17,7 +17,7 @@
{% if message %} -
+
{{message}}
diff --git a/core/templates/remember_password.html b/core/templates/remember_password.html index 4a1afd6..642a114 100644 --- a/core/templates/remember_password.html +++ b/core/templates/remember_password.html @@ -10,20 +10,29 @@
+ {% if success %} +
+ {{success}} +
+ {% elif danger %} +
+ {{danger}} +
+ {% endif %}
-
-
+ + {% csrf_token %}
- +
- +
- +
diff --git a/core/tests.py b/core/tests.py index 7bcddde..72494e7 100644 --- a/core/tests.py +++ b/core/tests.py @@ -2,7 +2,7 @@ from django.test import TestCase, Client from django.core.urlresolvers import reverse from rolepermissions.shortcuts import assign_role from users.models import User -# from django.core import mail +from django.core import mail class LoginTestCase(TestCase): @@ -10,10 +10,10 @@ class LoginTestCase(TestCase): self.client = Client() self.user = User.objects.create_user( - username = 'test', - email = 'testing@amadeus.com', - is_staff = True, - is_active = True, + username = 'test', + email = 'testing@amadeus.com', + is_staff = True, + is_active = True, password = 'testing' ) assign_role(self.user, 'system_admin') @@ -38,7 +38,7 @@ class LoginTestCase(TestCase): # self.assertEquals(response.context['message'], "Email ou senha incorretos!") class RegisterUserTestCase(TestCase): - + def setUp(self): self.client = Client() self.url = reverse('core:register') @@ -59,3 +59,35 @@ class RegisterUserTestCase(TestCase): self.assertRedirects(response, 'http://localhost%s' % reverse('core:home')) self.assertEqual(response.status_code, 302) self.assertEqual(User.objects.count(), 1) + +class RememberPasswordTestCase(TestCase): + + def setUp(self): + self.client = Client() + self.url = reverse('core:remember_password') + + def test_remember_password_ok(self): + response = self.client.get(self.url) + self.assertEquals(response.status_code, 200) + self.assertTemplateUsed(response, 'remember_password.html') + data = {'email': 'fulano@fulano.com', 'registration': '0124578964226'} + response = self.client.post(self.url, data) + self.assertEquals(response.status_code, 200) + self.assertEquals(len(mail.outbox), 1) + self.assertTrue('success' in response.context) + self.assertTrue('danger' not in response.context) + + def test_remember_password_error(self): + data = {'email': 'fulano@fulano.com','registration':''} + response = self.client.post(self.url, data) + self.assertEquals(response.status_code, 200) + self.assertEquals(len(mail.outbox), 0) + self.assertTrue('success' not in response.context) + self.assertTrue('danger' in response.context) + + data = {'email': '', 'registration': '0124578964226'} + response = self.client.post(self.url, data) + self.assertEquals(response.status_code, 200) + self.assertEquals(len(mail.outbox), 0) + self.assertTrue('success' not in response.context) + self.assertTrue('danger' in response.context) diff --git a/core/views.py b/core/views.py index ea47e69..680491e 100644 --- a/core/views.py +++ b/core/views.py @@ -1,13 +1,18 @@ -from rolepermissions.shortcuts import assign_role from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse_lazy, reverse from django.contrib.auth import authenticate, login as login_user -from .decorators import log_decorator from django.contrib import messages from django.shortcuts import render, redirect from django.views.generic import CreateView from django.http import HttpResponse -from .forms import RegisterUserForm +from django.core.mail import send_mail,BadHeaderError +from django.conf import settings + +from rolepermissions.shortcuts import assign_role + +from .forms import RegisterUserForm +from .decorators import log_decorator + from users.models import User def index(request): @@ -28,7 +33,7 @@ class RegisterUser(CreateView): assign_role(form.instance, 'student') messages.success(self.request, _('User successfully registered!')) - + return super(RegisterUser, self).form_valid(form) def create_account(request): @@ -36,7 +41,25 @@ def create_account(request): def remember_password(request): - return render(request, "remember_password.html") + context = {} + if request.POST: + email = request.POST['email'] + registration = request.POST['registration'] + if email and registration: + subject = _('Recover your password') + message = _('Hello %s, \nRecover your password to use your account.\nNumber of registration: %s\nLink for recuver password.\n\nRespectfully,\nTeam Amadeus.' % (request.user,registration)) + try: + send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [email],fail_silently=False) + context['success'] = 'Email successfully sent' + except BadHeaderError: + context['email'] = email + context['registration'] = registration + context['danger'] = 'E-mail does not send' + else: + context['email'] = email + context['registration'] = registration + context['danger'] = 'E-mail does not send' + return render(request, "remember_password.html",context) @log_decorator('Entrou no sistema') def login(request): -- libgit2 0.21.2