feat: page login

This commit is contained in:
2025-01-14 11:02:56 -03:00
parent 5040744c8a
commit 3b006e7a63
16 changed files with 59 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
from django.shortcuts import render from django.shortcuts import render
from django.contrib.auth.models import User
from gestaoRaul.decorators import group_required
# Create your views here.
def clients(request): def clients(request):
return render(request, 'clients.html') return render(request, 'clients.html')

Binary file not shown.

View File

@@ -1,14 +1,17 @@
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.http import HttpResponseForbidden from django.http import HttpResponseForbidden, HttpResponseRedirect
def group_required(groupName): def group_required(groupName):
def decorator(view_function): def decorator(view_function):
def wrapper(request, *args, **kwargs): def wrapper(request, *args, **kwargs):
if request.user.is_authenticated:
if request.user.groups.filter(name=groupName).exists(): if request.user.groups.filter(name=groupName).exists():
return view_function(request, *args, **kwargs) return view_function(request, *args, **kwargs)
else: else:
return HttpResponseForbidden('tu nao tem acesso rapa') return HttpResponseForbidden('tu nao tem acesso rapa')
else:
return HttpResponseForbidden('Direcionar para tela de login aqui')
return wrapper return wrapper
return decorator return decorator

View File

@@ -54,6 +54,7 @@ INSTALLED_APPS = [
'payments', 'payments',
'balcao', 'balcao',
'orders', 'orders',
'login',
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@@ -20,6 +20,7 @@ from django.urls import path, include
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('', include('home.urls')), path('', include('home.urls')),
path('login/', include('login.urls')),
path('products/', include('products.urls')), path('products/', include('products.urls')),
path('mesas/', include('mesas.urls')), path('mesas/', include('mesas.urls')),
path('typePay/', include('typePay.urls')), path('typePay/', include('typePay.urls')),

View File

@@ -3,6 +3,8 @@ from django.db.models import Sum
from django.db.models import Count, F from django.db.models import Count, F
from django.http import JsonResponse, HttpResponse from django.http import JsonResponse, HttpResponse
from django.contrib.admin.views.decorators import staff_member_required from django.contrib.admin.views.decorators import staff_member_required
from django.contrib.auth.models import User
from comandas.models import ProductComanda from comandas.models import ProductComanda
@@ -10,7 +12,6 @@ from orders.models import Order
from payments.models import Payments from payments.models import Payments
from gestaoRaul.decorators import group_required from gestaoRaul.decorators import group_required
@group_required(groupName='Gerente') @group_required(groupName='Gerente')
def home(request): def home(request):
total_pagamentos = Payments.objects.aggregate(total=Sum('value'))['total'] total_pagamentos = Payments.objects.aggregate(total=Sum('value'))['total']
@@ -25,6 +26,9 @@ def home(request):
@group_required(groupName='Gerente') @group_required(groupName='Gerente')
def chartCuisine(request): def chartCuisine(request):
print(request.user.id)
print(request.user.is_authenticated)
# fulano = User()
tFila = [] tFila = []
tPreparando = [] tPreparando = []
tFinalizado = [] tFinalizado = []

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Entrar</button>
</form>
</body>
</html>

6
gestaoRaul/login/urls.py Normal file
View File

@@ -0,0 +1,6 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.login_view, name='login'),
]

23
gestaoRaul/login/views.py Normal file
View File

@@ -0,0 +1,23 @@
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.contrib.auth.forms import AuthenticationForm
def login_view(request):
if request.method == 'POST':
form = AuthenticationForm(data=request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('home') # Substitua 'home' pelo nome da sua URL inicial
else:
pass
# Mensagem de erro: Credenciais inválidas
else:
pass
# Mensagem de erro: Formulário inválido
else:
form = AuthenticationForm()
return render(request, 'login.html', {'form': form})