From 3b006e7a63964e7666720e23c2b727075f1f5c9d Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Tue, 14 Jan 2025 11:02:56 -0300 Subject: [PATCH] feat: page login --- .../clients/__pycache__/views.cpython-310.pyc | Bin 332 -> 441 bytes gestaoRaul/clients/views.py | 4 ++- gestaoRaul/db.sqlite3 | Bin 266240 -> 266240 bytes .../__pycache__/decorators.cpython-310.pyc | Bin 847 -> 952 bytes .../__pycache__/settings.cpython-310.pyc | Bin 2701 -> 2708 bytes .../__pycache__/urls.cpython-310.pyc | Bin 1303 -> 1337 bytes gestaoRaul/gestaoRaul/decorators.py | 11 ++++++--- gestaoRaul/gestaoRaul/settings.py | 1 + gestaoRaul/gestaoRaul/urls.py | 1 + .../home/__pycache__/views.cpython-310.pyc | Bin 1857 -> 1975 bytes gestaoRaul/home/views.py | 6 ++++- .../login/__pycache__/urls.cpython-310.pyc | Bin 0 -> 290 bytes .../login/__pycache__/views.cpython-310.pyc | Bin 0 -> 763 bytes gestaoRaul/login/templates/login.html | 13 ++++++++++ gestaoRaul/login/urls.py | 6 +++++ gestaoRaul/login/views.py | 23 ++++++++++++++++++ 16 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 gestaoRaul/login/__pycache__/urls.cpython-310.pyc create mode 100644 gestaoRaul/login/__pycache__/views.cpython-310.pyc create mode 100644 gestaoRaul/login/templates/login.html create mode 100644 gestaoRaul/login/urls.py create mode 100644 gestaoRaul/login/views.py diff --git a/gestaoRaul/clients/__pycache__/views.cpython-310.pyc b/gestaoRaul/clients/__pycache__/views.cpython-310.pyc index 652702ff5ee468b30c1a4aec40d1667692d5993c..0ec33b4b2e4702255613c293814025373f8ff646 100644 GIT binary patch literal 441 zcmYjN%}T>S5Z=vCQ%fpdy!Ze@FTryW5v$i8Dqg~Z#O#trHrYD6Yf-!@zDu9QH^|kK zui(j<5U>L?^Ub$2-wbP}(+NX6tv;(S%->Y(TY$wSx;?`nndF)^Jm;Knpo1pN!ybn^ zYT`Ub9Le~DX=r?o5?-qd`VmW1%2J*NY4``1 CXKY3Q delta 168 zcmdnVe1?fPpO=@50SI{O!qZzP^2+K;068fPDU3M`xr|Yaj0`DEDa(L zFF|ToGTve+oetc14Y0ku-s=^?NVkRKL#aP4+ rr2I6QCmS+~8-O`QAXy}W4amL4VUwGmQks)$#|Y#Vvj7Pm1|AjwKhz>* diff --git a/gestaoRaul/clients/views.py b/gestaoRaul/clients/views.py index b7fcd2b..17f5bf0 100644 --- a/gestaoRaul/clients/views.py +++ b/gestaoRaul/clients/views.py @@ -1,6 +1,8 @@ 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): return render(request, 'clients.html') \ No newline at end of file diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index b65c960d9e61e54afedeaaa837a218ea7ceabde7..eacf04ff7e4323c37ebda9b87527d739cc826d9c 100644 GIT binary patch delta 297 zcmZozAkeTtV1hKG%|sbzMw^WZ%i=jI8F(xCqxeiW8!BY;ax_{p@-j5qI!^A$&E_{W zu`)2SGBVOLur#$aHr@O?_X4A!i2_L2(8|PA&(zS+*wkY4o%~`gg)-Bk@ZQ7Fz{`1-qC9RTdgsq*&y{>-vXyc$hmG z`}q_UCkK>7Ka*q?L>A;&g}UtoXY&$`S0*g;`i7r nSisLeS$VxCL1#4Qtlyrqo{=*E-E-|N{~3XpX?x3m<{AM2YP??h delta 297 zcmZozAkeTtV1hKG*+dyy~ANhU9vhCl-ZgyZPn2 z76gS6pfj3t)^E>Q&&V0Tk7iBJpSeZ=0D`k%S^xk5 diff --git a/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc b/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc index de1ff3cfc3802026ba40d33bd3041f74e44b444e..09f13be40423f84c2e3702bf65e1b10956570948 100644 GIT binary patch delta 382 zcmXYsu}Z^07{~9sTw^S4Y;CPnDxTtCa1a+=N(XW1)S+%J5_(6Q&?fbAStPiqrHewy z3#f=7zJM>_?4Eb<9lUG3;rHkJeSbcPCWm=*b4(!(5Wk2D*4!@jMH&A^aAQ$ z$DU*6B#yYqD_(Tv#&X01=?z@TS;pbLq(5ar9U5TatcFi%MF|IsH5FoA;RA%N6)aUX z^YIo~*#q8h{a5u`)HSpaHH~WajdxayVnYo*$IO25@d?ojEtb7Sd4Z~Oxz(P8EFSX? Ns3|fPN~i)Q;}1OvRp0;s delta 290 zcmdnNex8jlpO=@50SK<`Xib05IFV0=QDvgGq!S}U3Udle3qur33TrTfCfiGp8coJq z0=cOr8Tl#kDXGc%MTsT(ML;o8kCKvtpw!}m{Ji2+xBQ}{%#@VWyonb@CvMG@FaqkU zVaQ_0V$5RdU`S!?Wn93#kfBI)vK^y1Crb)bGb7M==E-S{iX57(w^&MxQ;Q}aWn9L= z2Gl3QD8@LsoXK2)4`ex05igJ`5&#k_8H;#8LW~e0{>kTK=1ew5k;$H1E&wym B4afih delta 39 tcmbOt+AGSN&&$ij00fsh8q6qx*h>HX$s%$aPA!jl8ITmawk3-3}(=j+IV3%6CYbnetKq}eiav(-rUMu#KFFa~K(ACQGo&GI4wZ0B&Otx&QzG diff --git a/gestaoRaul/gestaoRaul/decorators.py b/gestaoRaul/gestaoRaul/decorators.py index 22df2c4..6caa715 100644 --- a/gestaoRaul/gestaoRaul/decorators.py +++ b/gestaoRaul/gestaoRaul/decorators.py @@ -1,14 +1,17 @@ from django.utils.decorators import method_decorator -from django.http import HttpResponseForbidden +from django.http import HttpResponseForbidden, HttpResponseRedirect def group_required(groupName): def decorator(view_function): def wrapper(request, *args, **kwargs): - if request.user.groups.filter(name=groupName).exists(): - return view_function(request, *args, **kwargs) + if request.user.is_authenticated: + if request.user.groups.filter(name=groupName).exists(): + return view_function(request, *args, **kwargs) + else: + return HttpResponseForbidden('tu nao tem acesso rapa') else: - return HttpResponseForbidden('tu nao tem acesso rapa') + return HttpResponseForbidden('Direcionar para tela de login aqui') return wrapper return decorator diff --git a/gestaoRaul/gestaoRaul/settings.py b/gestaoRaul/gestaoRaul/settings.py index 914c889..50d457e 100644 --- a/gestaoRaul/gestaoRaul/settings.py +++ b/gestaoRaul/gestaoRaul/settings.py @@ -54,6 +54,7 @@ INSTALLED_APPS = [ 'payments', 'balcao', 'orders', + 'login', ] MIDDLEWARE = [ diff --git a/gestaoRaul/gestaoRaul/urls.py b/gestaoRaul/gestaoRaul/urls.py index a25719b..df33d14 100644 --- a/gestaoRaul/gestaoRaul/urls.py +++ b/gestaoRaul/gestaoRaul/urls.py @@ -20,6 +20,7 @@ from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('home.urls')), + path('login/', include('login.urls')), path('products/', include('products.urls')), path('mesas/', include('mesas.urls')), path('typePay/', include('typePay.urls')), diff --git a/gestaoRaul/home/__pycache__/views.cpython-310.pyc b/gestaoRaul/home/__pycache__/views.cpython-310.pyc index 3e326ca74a9d75e5fbc521e43591f94d2bacb61d..6ae4b8b10cad52e61509b8fa7f4e8c6ab823c2ad 100644 GIT binary patch delta 742 zcmYk4y>HV%6u|HKD~@9)X}*d`(^QnIM2Kt!2E@Q;rw)8bC<4Kevr=1$4d;t0fujyV zNDLh!uMCM;sKmy=+#UV_{{f6Fh@E#<8}R9Vdj7q4zNaUj6u*_6&~Yq+4-MWAe$Jd0 ze4brCxXK8#hSgE6R|DeKSb^C`z#LY5N2buLFHMP+Gt*!z4@svo`~Fnd9!DRf&c~9dS(fdU8*_g-1T9ZP-YT)z;xJOb8MaAADsB za2BgF9*_y(R&c9Wq0My$3z%r9v4XKK3_s_aOl8^;OpMsLL!NC;axu*Fan84J7tWEn zy&wzxUaVx+k(pC_D7BjDB5LPf@#}3-66F}CAXX%sgy~Hj%*4z*Hj5s)^!dzVQFWTK1ynbS(DWKzMyB zT$ZZ$?>3QbUU=ViuVIa8ovMXEYjzZ=RBc8{?Ua23BXuxQ6X60|y zb3)EszI27;#Hf#KnW+!lNYL;B9S^(A?T4I-kVo9X9N&Y(a!Bi|T3q|+~cXYBG delta 579 zcmYk2%}X0W6u{^0WWT>O(OMc~@C&hm2dS50duVMHL_O#!C>We28cbqmS4wf09<)af zVXiGCc=9jkL0a(QpHNC}{wKZ}WN{wv$K&^Q-`kzv;a%W&eBU8>-roLb>~;ML{Om4# zeH|5noR@Kd`Ws%pY#Dpswr#B&NEAub3# z_~)6Wyrw)d_qOs>d1UULBoKcKyciDX+Na$CZA1x|H_Ts%NI!saaj&nxnUrEmVp^h- zV*;yzcX(9i$;Y$f__!UtLKDv*#AjpHT*6{&epGPdyi^MhJFR+~)#Jrhheanbx5cDc z8k5^<;c5L_D{3cs&lMYHdE3JtuS&>C&lamsP}{8)oOX5+y$5_Emg_y@!4QTA9>v74 Jr~{T8z#|rSeb)d0 diff --git a/gestaoRaul/home/views.py b/gestaoRaul/home/views.py index 827ce91..9b656a9 100644 --- a/gestaoRaul/home/views.py +++ b/gestaoRaul/home/views.py @@ -3,6 +3,8 @@ from django.db.models import Sum from django.db.models import Count, F from django.http import JsonResponse, HttpResponse from django.contrib.admin.views.decorators import staff_member_required +from django.contrib.auth.models import User + from comandas.models import ProductComanda @@ -10,7 +12,6 @@ from orders.models import Order from payments.models import Payments from gestaoRaul.decorators import group_required - @group_required(groupName='Gerente') def home(request): total_pagamentos = Payments.objects.aggregate(total=Sum('value'))['total'] @@ -25,6 +26,9 @@ def home(request): @group_required(groupName='Gerente') def chartCuisine(request): + print(request.user.id) + print(request.user.is_authenticated) + # fulano = User() tFila = [] tPreparando = [] tFinalizado = [] diff --git a/gestaoRaul/login/__pycache__/urls.cpython-310.pyc b/gestaoRaul/login/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aca3532912528e10fac2d1670f7e5af57ed53f72 GIT binary patch literal 290 zcmYjMOG*SW5Uq4NV>2J`(VN~1A|j4%U9`Aq0z)t%&XCWLq-XE~E(8zam9lj;S8$`1 zc4I-k;!*F_$FEj%z<9TB`hfMTkpIDu++fBIL4qU(EExy^SxIUtO9x6o5m_s`t0j}O z530$)}MTIEvYeSdqu=32!hd@n}B dr*XV&>h`a>xw2l4MqQU9V}r1SB{`?f&o6NY?K|uq zIr2Kba^e*@G0s-n9++q*^JmXDGgc=jBLp;Uf2@8{gnoPDmUvlQy`*({E0GsjBmM-p$&}}J&i_c4Awo3Dq=mbz|KX1p@N{Y+T&}+7~ zvT^J)G?FjCo5o}XzMPpU*T2-BdJ(yxXfAwZotl)xD&C9MS2Asu3 zEw&~*|K@ISFTL$cn@1o1U z-SiNvRBLtpDf4gQt~vMcKjF+z%-jyjml(P_68FL9;%8Fvt`X1u(=joK37UA2 + + + Login + + +
+ {% csrf_token %} + {{ form.as_p }} + +
+ + \ No newline at end of file diff --git a/gestaoRaul/login/urls.py b/gestaoRaul/login/urls.py new file mode 100644 index 0000000..65294c6 --- /dev/null +++ b/gestaoRaul/login/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.login_view, name='login'), +] \ No newline at end of file diff --git a/gestaoRaul/login/views.py b/gestaoRaul/login/views.py new file mode 100644 index 0000000..6079b85 --- /dev/null +++ b/gestaoRaul/login/views.py @@ -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}) \ No newline at end of file