Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from django.shortcuts import render, redirect, render_to_response
- from principal.models import *
- from django.views import View
- from django.http import HttpResponse, JsonResponse
- from django.utils.decorators import method_decorator
- from django.contrib.auth import authenticate, login, logout
- from django.contrib.auth.decorators import login_required
- from django.views.decorators.csrf import csrf_exempt
- from django.contrib.auth.models import User
- import json
- class EsqueciMinhaSenhaView(BasicView):
- template_name = 'esqueciMinhaSenha.html'
- def get(self, request):
- self.dados['pagina'] = {'nome': 'esqueciminhasenha', 'titulo': 'Recuperação de Senha'}
- return render(request, self.template_name, self.dados)
- def post(self, request):
- usuario = User.objects.get(email = request.POST.get('email'))
- #Gera uma nova senha
- chars = []
- chars.extend([i for i in string.ascii_letters])
- chars.extend([i for i in string.digits])
- #chars.extend([i for i in '#$%*'])
- senha = ''
- tamanho = 10
- for i in range(tamanho):
- senha += chars[random.randint(0, len(chars) - 1)]
- random.seed = int(time.time())
- random.shuffle(chars)
- usuario.set_password(senha)
- usuario.is_active = True
- usuario.save()
- usuario.email_user(
- subject = 'Recuperação de senha',
- message = '''
- Olá %s,
- Nós criamos uma nova senha para você. Aqui estão os seus dados de acesso:
- Login: %s
- Senha: %s
- Não se esqueça de trocar a sua senha quando entrar novamente no nosso sistema.
- Um grande abraço!
- ''' % (usuario.first_name, usuario.email, senha),
- from_email = 'contato@mazzollisistemas.com.br'
- )
- self.dados['titulo'] = 'Mensagem enviada'
- self.dados['texto'] = '<div class="col-md-6 text-center"><img src="/static/imagens/joinha.jpg" style="max-width: 100%;"></div><div class="col-md-6 text-center">Uma nova senha foi enviada para o seu e-mail!</div>'
- return render(request, 'mensagem.html', self.dados)
- @method_decorator(csrf_exempt, name = 'dispatch')
- class LoginView(BasicView):
- def get(self, request, **kwargs):
- self.dados['pagina'] = {'nome': 'login', 'titulo': 'Login de Usuário'}
- self.template_name ='login.html'
- return render(request, self.template_name, self.dados)
- def post(self, request, **kwargs):
- usuario = request.POST.get('usuario')
- senha = request.POST.get('senha')
- entrada = authenticate(username = usuario, password = senha)
- if entrada is not None:
- login(request, entrada)
- if 'next' in request.GET:
- saida = {
- 'next': request.GET.get('next'),
- 'resposta': 'OK',
- }
- else:
- saida = {
- 'next': '',
- 'resposta': 'OK',
- }
- else: #O usuário não existe, a senha está incorreta ou o usuário não está ativo
- if User.objects.filter(username = usuario).exists(): #Se o usuário existe:
- if not User.objects.get(username = usuario).is_active: #Se o usuário não está ativo:
- saida = {
- 'resposta': 'Usuário não ativo. Clique <a href="/reenviar/%s">aqui</a> para reenviar o e-mail de ativação do cadastro.' % User.objects.get(username = usuario).id,
- }
- else: #Se o usuário está ativo:
- saida = {
- 'resposta': 'Senha incorreta.',
- }
- else: #Se não existe o usuário informado:
- saida = {
- 'resposta': 'Não encontramos o registro do usuário informado. Você digitou o e-mail corretamente?'
- }
- return JsonResponse(saida)
- @method_decorator(csrf_exempt, name = 'dispatch')
- class CadastroView(BasicView):
- def get(self, request, **kwargs):
- self.dados['pagina'] = {'nome': 'cadastro', 'titulo': 'Cadastro de Usuário'}
- self.template_name = 'cadastro.html'
- return render(request, self.template_name, self.dados)
- def post(self, request, **kwargs):
- try:
- if User.objects.filter(username = request.POST.get('email')).exists():
- return HttpResponse('Já existe um usuário com esse e-mail.')
- else:
- user = User.objects.create_user(
- username = request.POST.get('email'),
- email = request.POST.get('email'),
- password = request.POST.get('senha')
- )
- user.first_name = request.POST.get('nome')
- user.last_name = request.POST.get('sobrenome')
- user.is_active = False
- user.save()
- user.email_user(
- subject = 'Confirmação de Cadastro',
- message = '''
- Olá %s,
- Seja bem vindo ao nosso sistema! Estamos quase lá! A única coisa que falta agora é você confirmar o seu cadastro.
- Para isso, clique no link abaixo ou copie o endereço no seu navegador:
- http://www.mazzollisistemas.com.br/ativar/%s/
- Um grande abraço!
- ''' % (user.first_name, usuario.token),
- from_email = 'contato@mazzollisistemas.com.br'
- )
- return HttpResponse('OK')
- except:
- return HttpResponse('Erro ao registrar o usuário. Tente novamente mais tarde.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement