
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.models import User
from django.contrib import auth, messages
from receitas.models import Receita

def cadastro(request):
    """ Cadastra uma nova pessoa no sistema """

    if request.user.is_authenticated:
        return redirect('dashboard')
    
    else:
        if request.method == 'POST':
            nome = request.POST['nome']
            email = request.POST['email']
            senha = request.POST['password']
            senha2 = request.POST['password2']

            if not nome.strip():
                messages.error(request, 'O campo nome não pode ficar em branco')
                return redirect('cadastro')

            if not email.strip():
                messages.error(request, 'O campo email não pode ficar em branco')
                return redirect('cadastro')

            if senhas_nao_iguais(senha, senha2):
                messages.error(request, 'As senhas não são iguais')
                return redirect('cadastro')

            if User.objects.filter(email = email).exists():
                messages.error(request, 'Email já cadastrado')
                return redirect('cadastro')

            if User.objects.filter(username = nome).exists():
                messages.error(request, 'Usuário já cadastrado')
                return redirect('cadastro')
            
            user = User.objects.create_user(username = nome, email = email, password = senha)
            user.save()
                
            messages.success(request, 'Cadastro realizado com sucesso')
            return redirect('login')

        else:
            return render(request, 'usuarios/cadastro.html')

def login(request):
    """ Realiza o login de uma pessoa no sistema """

    if request.user.is_authenticated:
        return redirect('dashboard')
    
    else:
        if request.method == 'POST':
            email = request.POST['email']
            senha = request.POST['senha']

            if email == "" or senha == "":
                messages.error(request, 'Os campos de email e senha não devem ficar em branco')
                return redirect('login')

            if User.objects.filter(email=email).exists:
                try:
                    nome = User.objects.filter(email=email).values_list('username', flat=True).get()

                    user = auth.authenticate(request, username = nome, password = senha)
                except:
                    user = None

                if user is not None:
                    auth.login(request, user)
                    messages.success(request, 'login realizado com sucesso')
                    return redirect('dashboard')
                else:
                    messages.error(request,'Senha ou Usuário incorretos')
                    return redirect('login')
            else:
                messages.error(request,'Email não cadastrado')
                return redirect('login')

        return render(request, 'usuarios/login.html')

def logout(request):
    """ Realiza o logout de uma pessoa no sistema """
    auth.logout(request)
    return redirect('index')

def dashboard(request):
    """ Retorna o Dashboard do usuário """
    if request.user.is_authenticated:
        id = request.user.id
        receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)
        dados = {
            'receitas': receitas
        }
        return render(request, 'usuarios/dashboard.html', dados)
    else:
        return redirect('login')

def senhas_nao_iguais(senha, senha2):
    """ Verifica se as senhas são iguais """
    return senha != senha2


787901a106f4d6c5bb412f747c19e9b3fdfb897b
<mask token>


def login(request):
    """ Realiza o login de uma pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    else:
        if request.method == 'POST':
            email = request.POST['email']
            senha = request.POST['senha']
            if email == '' or senha == '':
                messages.error(request,
                    'Os campos de email e senha não devem ficar em branco')
                return redirect('login')
            if User.objects.filter(email=email).exists:
                try:
                    nome = User.objects.filter(email=email).values_list(
                        'username', flat=True).get()
                    user = auth.authenticate(request, username=nome,
                        password=senha)
                except:
                    user = None
                if user is not None:
                    auth.login(request, user)
                    messages.success(request, 'login realizado com sucesso')
                    return redirect('dashboard')
                else:
                    messages.error(request, 'Senha ou Usuário incorretos')
                    return redirect('login')
            else:
                messages.error(request, 'Email não cadastrado')
                return redirect('login')
        return render(request, 'usuarios/login.html')


<mask token>


def dashboard(request):
    """ Retorna o Dashboard do usuário """
    if request.user.is_authenticated:
        id = request.user.id
        receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)
        dados = {'receitas': receitas}
        return render(request, 'usuarios/dashboard.html', dados)
    else:
        return redirect('login')


def senhas_nao_iguais(senha, senha2):
    """ Verifica se as senhas são iguais """
    return senha != senha2

<mask token>


def cadastro(request):
    """ Cadastra uma nova pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    elif request.method == 'POST':
        nome = request.POST['nome']
        email = request.POST['email']
        senha = request.POST['password']
        senha2 = request.POST['password2']
        if not nome.strip():
            messages.error(request, 'O campo nome não pode ficar em branco')
            return redirect('cadastro')
        if not email.strip():
            messages.error(request, 'O campo email não pode ficar em branco')
            return redirect('cadastro')
        if senhas_nao_iguais(senha, senha2):
            messages.error(request, 'As senhas não são iguais')
            return redirect('cadastro')
        if User.objects.filter(email=email).exists():
            messages.error(request, 'Email já cadastrado')
            return redirect('cadastro')
        if User.objects.filter(username=nome).exists():
            messages.error(request, 'Usuário já cadastrado')
            return redirect('cadastro')
        user = User.objects.create_user(username=nome, email=email,
            password=senha)
        user.save()
        messages.success(request, 'Cadastro realizado com sucesso')
        return redirect('login')
    else:
        return render(request, 'usuarios/cadastro.html')


def login(request):
    """ Realiza o login de uma pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    else:
        if request.method == 'POST':
            email = request.POST['email']
            senha = request.POST['senha']
            if email == '' or senha == '':
                messages.error(request,
                    'Os campos de email e senha não devem ficar em branco')
                return redirect('login')
            if User.objects.filter(email=email).exists:
                try:
                    nome = User.objects.filter(email=email).values_list(
                        'username', flat=True).get()
                    user = auth.authenticate(request, username=nome,
                        password=senha)
                except:
                    user = None
                if user is not None:
                    auth.login(request, user)
                    messages.success(request, 'login realizado com sucesso')
                    return redirect('dashboard')
                else:
                    messages.error(request, 'Senha ou Usuário incorretos')
                    return redirect('login')
            else:
                messages.error(request, 'Email não cadastrado')
                return redirect('login')
        return render(request, 'usuarios/login.html')


<mask token>


def dashboard(request):
    """ Retorna o Dashboard do usuário """
    if request.user.is_authenticated:
        id = request.user.id
        receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)
        dados = {'receitas': receitas}
        return render(request, 'usuarios/dashboard.html', dados)
    else:
        return redirect('login')


def senhas_nao_iguais(senha, senha2):
    """ Verifica se as senhas são iguais """
    return senha != senha2

<mask token>


def cadastro(request):
    """ Cadastra uma nova pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    elif request.method == 'POST':
        nome = request.POST['nome']
        email = request.POST['email']
        senha = request.POST['password']
        senha2 = request.POST['password2']
        if not nome.strip():
            messages.error(request, 'O campo nome não pode ficar em branco')
            return redirect('cadastro')
        if not email.strip():
            messages.error(request, 'O campo email não pode ficar em branco')
            return redirect('cadastro')
        if senhas_nao_iguais(senha, senha2):
            messages.error(request, 'As senhas não são iguais')
            return redirect('cadastro')
        if User.objects.filter(email=email).exists():
            messages.error(request, 'Email já cadastrado')
            return redirect('cadastro')
        if User.objects.filter(username=nome).exists():
            messages.error(request, 'Usuário já cadastrado')
            return redirect('cadastro')
        user = User.objects.create_user(username=nome, email=email,
            password=senha)
        user.save()
        messages.success(request, 'Cadastro realizado com sucesso')
        return redirect('login')
    else:
        return render(request, 'usuarios/cadastro.html')


def login(request):
    """ Realiza o login de uma pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    else:
        if request.method == 'POST':
            email = request.POST['email']
            senha = request.POST['senha']
            if email == '' or senha == '':
                messages.error(request,
                    'Os campos de email e senha não devem ficar em branco')
                return redirect('login')
            if User.objects.filter(email=email).exists:
                try:
                    nome = User.objects.filter(email=email).values_list(
                        'username', flat=True).get()
                    user = auth.authenticate(request, username=nome,
                        password=senha)
                except:
                    user = None
                if user is not None:
                    auth.login(request, user)
                    messages.success(request, 'login realizado com sucesso')
                    return redirect('dashboard')
                else:
                    messages.error(request, 'Senha ou Usuário incorretos')
                    return redirect('login')
            else:
                messages.error(request, 'Email não cadastrado')
                return redirect('login')
        return render(request, 'usuarios/login.html')


def logout(request):
    """ Realiza o logout de uma pessoa no sistema """
    auth.logout(request)
    return redirect('index')


def dashboard(request):
    """ Retorna o Dashboard do usuário """
    if request.user.is_authenticated:
        id = request.user.id
        receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)
        dados = {'receitas': receitas}
        return render(request, 'usuarios/dashboard.html', dados)
    else:
        return redirect('login')


def senhas_nao_iguais(senha, senha2):
    """ Verifica se as senhas são iguais """
    return senha != senha2

from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.models import User
from django.contrib import auth, messages
from receitas.models import Receita


def cadastro(request):
    """ Cadastra uma nova pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    elif request.method == 'POST':
        nome = request.POST['nome']
        email = request.POST['email']
        senha = request.POST['password']
        senha2 = request.POST['password2']
        if not nome.strip():
            messages.error(request, 'O campo nome não pode ficar em branco')
            return redirect('cadastro')
        if not email.strip():
            messages.error(request, 'O campo email não pode ficar em branco')
            return redirect('cadastro')
        if senhas_nao_iguais(senha, senha2):
            messages.error(request, 'As senhas não são iguais')
            return redirect('cadastro')
        if User.objects.filter(email=email).exists():
            messages.error(request, 'Email já cadastrado')
            return redirect('cadastro')
        if User.objects.filter(username=nome).exists():
            messages.error(request, 'Usuário já cadastrado')
            return redirect('cadastro')
        user = User.objects.create_user(username=nome, email=email,
            password=senha)
        user.save()
        messages.success(request, 'Cadastro realizado com sucesso')
        return redirect('login')
    else:
        return render(request, 'usuarios/cadastro.html')


def login(request):
    """ Realiza o login de uma pessoa no sistema """
    if request.user.is_authenticated:
        return redirect('dashboard')
    else:
        if request.method == 'POST':
            email = request.POST['email']
            senha = request.POST['senha']
            if email == '' or senha == '':
                messages.error(request,
                    'Os campos de email e senha não devem ficar em branco')
                return redirect('login')
            if User.objects.filter(email=email).exists:
                try:
                    nome = User.objects.filter(email=email).values_list(
                        'username', flat=True).get()
                    user = auth.authenticate(request, username=nome,
                        password=senha)
                except:
                    user = None
                if user is not None:
                    auth.login(request, user)
                    messages.success(request, 'login realizado com sucesso')
                    return redirect('dashboard')
                else:
                    messages.error(request, 'Senha ou Usuário incorretos')
                    return redirect('login')
            else:
                messages.error(request, 'Email não cadastrado')
                return redirect('login')
        return render(request, 'usuarios/login.html')


def logout(request):
    """ Realiza o logout de uma pessoa no sistema """
    auth.logout(request)
    return redirect('index')


def dashboard(request):
    """ Retorna o Dashboard do usuário """
    if request.user.is_authenticated:
        id = request.user.id
        receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)
        dados = {'receitas': receitas}
        return render(request, 'usuarios/dashboard.html', dados)
    else:
        return redirect('login')


def senhas_nao_iguais(senha, senha2):
    """ Verifica se as senhas são iguais """
    return senha != senha2


from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.models import User
from django.contrib import auth, messages
from receitas.models import Receita

def cadastro(request):
    """ Cadastra uma nova pessoa no sistema """

    if request.user.is_authenticated:
        return redirect('dashboard')
    
    else:
        if request.method == 'POST':
            nome = request.POST['nome']
            email = request.POST['email']
            senha = request.POST['password']
            senha2 = request.POST['password2']

            if not nome.strip():
                messages.error(request, 'O campo nome não pode ficar em branco')
                return redirect('cadastro')

            if not email.strip():
                messages.error(request, 'O campo email não pode ficar em branco')
                return redirect('cadastro')

            if senhas_nao_iguais(senha, senha2):
                messages.error(request, 'As senhas não são iguais')
                return redirect('cadastro')

            if User.objects.filter(email = email).exists():
                messages.error(request, 'Email já cadastrado')
                return redirect('cadastro')

            if User.objects.filter(username = nome).exists():
                messages.error(request, 'Usuário já cadastrado')
                return redirect('cadastro')
            
            user = User.objects.create_user(username = nome, email = email, password = senha)
            user.save()
                
            messages.success(request, 'Cadastro realizado com sucesso')
            return redirect('login')

        else:
            return render(request, 'usuarios/cadastro.html')

def login(request):
    """ Realiza o login de uma pessoa no sistema """

    if request.user.is_authenticated:
        return redirect('dashboard')
    
    else:
        if request.method == 'POST':
            email = request.POST['email']
            senha = request.POST['senha']

            if email == "" or senha == "":
                messages.error(request, 'Os campos de email e senha não devem ficar em branco')
                return redirect('login')

            if User.objects.filter(email=email).exists:
                try:
                    nome = User.objects.filter(email=email).values_list('username', flat=True).get()

                    user = auth.authenticate(request, username = nome, password = senha)
                except:
                    user = None

                if user is not None:
                    auth.login(request, user)
                    messages.success(request, 'login realizado com sucesso')
                    return redirect('dashboard')
                else:
                    messages.error(request,'Senha ou Usuário incorretos')
                    return redirect('login')
            else:
                messages.error(request,'Email não cadastrado')
                return redirect('login')

        return render(request, 'usuarios/login.html')

def logout(request):
    """ Realiza o logout de uma pessoa no sistema """
    auth.logout(request)
    return redirect('index')

def dashboard(request):
    """ Retorna o Dashboard do usuário """
    if request.user.is_authenticated:
        id = request.user.id
        receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)
        dados = {
            'receitas': receitas
        }
        return render(request, 'usuarios/dashboard.html', dados)
    else:
        return redirect('login')

def senhas_nao_iguais(senha, senha2):
    """ Verifica se as senhas são iguais """
    return senha != senha2

