From 5040744c8ad588c35744034138e4a782ada10084 Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Mon, 13 Jan 2025 22:18:28 -0300 Subject: [PATCH] feat: decorator group_required --- gestaoRaul/db.sqlite3 | Bin 262144 -> 266240 bytes .../__pycache__/decorators.cpython-310.pyc | Bin 0 -> 847 bytes gestaoRaul/gestaoRaul/decorators.py | 14 ++++++++++++ .../home/__pycache__/views.cpython-310.pyc | Bin 1924 -> 1857 bytes gestaoRaul/home/views.py | 21 ++++++------------ 5 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc create mode 100644 gestaoRaul/gestaoRaul/decorators.py diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index ec8345f62fff2ea1a0243f3eb8dddeeeab23c6b5..b65c960d9e61e54afedeaaa837a218ea7ceabde7 100644 GIT binary patch delta 1147 zcmah{X>3$g6ux)PyKkGmcc-yM+fq7Rur;Qgr8Co+G0;w9p~ccz3seO|r=;t2mej7I zaazHKD6u#;Paz>Ci2g7_o2lL?k~V@dksmCfF*QX?D1_1~5Cybo^bJPCALIRTPIAt7 zzw@0X8Z|{nO~V<)g%I-XGnZo5c!RTuC+RD|gJXyAir9G3DO?@zu?$wYU;EGV&VN0Ra>gcy`goD?v}!y*3FxORVDt; z`oOxHa7E;qP5mw9?X|&@V4%z1To-9byMIi2qkq$FX-+LT3?Ora#j~dYR7Z1m94B5DrNg z;+H408+5=$MDNjG=ta6j=XJnoD)5|yF%WIug3UVMDx$yByYwo(MHl1AQx_=VK*EGA zmf|#%o}W+T@6em{dV*l=Jmm=_{ z&Q!J1qnO}orn|2&RI9r+!EAU>U)B{xE6RfN+BS<}ge^_tRO|i4Fme<7>8e%W!~Z=& zw(C#)ikYW-@NQx2h=8rkV>Zkf48qoUt*MIpTVERU=Nk&d1S=WZYca6B7U+#YCh=;* zD0mFStAl^#QtGNDL^E+cmVCC}rjD*~$nDV%9f1tZ`T?XS|8qS~Tan%6bh+*9ts~Ga zn>f0lGovznxVPy7y}?q(V4AMfL#2bcy7dh{tJ}2$n{~UUUBP=$yGEv<*Z`H9cM1+` zKTJWIc4rD=oU$HIGCU4>SR4Nmv`6#OWMokU2`i$wrKz(e9BTEOLw@rPf2ZGEwtD%} z`lBg3frU=OjFf0^CBr8m!=N>vfrD8AK!`ie9pH9y&v70u6K=sN_z+%)R@eafpb2N; zxc2>7c$`NFW>Kwn?gr#A+c`Lc*&kz2a9_g-cI5(O8QnG9C=wgQ3Nc?)gazSi;bY+q zAtY1^j|rInj{lS&;lq3lU%(S`iF`!5$&)0B`<5Hk#5riy-k*b7U7s+-ew))J@Q#77 z{6N78U@u>TT@Syi=sh^aene;J1RbWWw1g(B*VL10Ol{Y1DO*`qrj>E!O=Y{{Q&N-e zCb6XMq+;Vw#?!{b#;9?d(P1>n^YUl%KDl4^%T=;XPM1MilBT6kq<5q~sZn}D%9aH2 ZM{!#GTs)|kdho^9nwJH3dk%(#zW@^dNge;ggQIxx@ng+P0W@^?P3T~b`jmxHq;&6D9|#B zAaq?~x{w&vYbF!@4;5`x4?PuBbdwO&2n|ZQl0{8#y+kkH!#RiVe3#AvXJ@Cgcb=#b zLW<+=0M&+e`f??fkq(74ae<~MhH~%Gpk?IsYD$baVpyyCERQ?vP`V1KgLJK0lQ`bo znC5lsdXcxF$m`AZ7I<`Bv!dV(P-It?za&-USDtsQl-)cH{ip|1xM8qtD&6tH8hp`X)thD`z ziLAlw#kTS6|B7lFJUx@)D8cXe5hrofN=rUQYxMTQov94R2u|ZCe8-)Y^a%=tm}7a= ztuUM<_yfOkRin=_UMcg*0G;c!c_#kMzu*U)uz6l0pV&b&iqnH?fT$6*QLR#UtJ~EY zHK>-U0iHQP=d1Bbg$J(C`xJue2~)mGO}m444znj$_|Cg;(?c4=dLnZ11Fgdawk6lU zGvVF8=pnac7jjgt`@?mH_q&A_!K!jrFo^+85ky|ML|Cer-AEgbP2~xEDi3DuhfJ}@ zln0>DzT7DCp34wTbppP(-;rWFg3tIKSMb?a;VEWTS8sH0EwdMa!`p0J-4(HMRfogI z4pU5mS8$Y@MM=0w*P6pg$S}VpA%6Waj8nevF1$$LKW~CdFzX*eKeW>nGwTuD$Yc-L z71qlPR?Re)4xiu|3_%}+pcGu@>qoGR4~)Su@bM?$n!y^$XJW1#frfl#i=rtr5g<>GNdXgM^eOB;w>>Qwu)Xh#Rgf3l{1%lX#}cxOku}le()`H&-o4G C_V()l diff --git a/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc b/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..de1ff3cfc3802026ba40d33bd3041f74e44b444e GIT binary patch literal 847 zcmah{J&zMH5cPOB9|y^CeB4nIB$_lSu0*F3x&uU&B8Vo66q&WNw_$g^XL|`mq2dtN zz;6IVbN_%}LgAK*ik^y@O~@S*0!y~XW54%iJfqv~OAN=?FK^->z}PoBTpSz^_i)-f zxJV`;Wf=?s$mS`}f?(;;HOV$Oyl___mortz&}Pne5L&39bc$%XDX zm32gHp@S?5DxVtn;%Mthh0 zjSAOC3EzI6sM&Z@=8;Que#U+t9Nry0L2^5qsnqGweI1pV%AFkz1_uugM==r#JrHGj z(OlQU_KKIjF~cwmWg7GibzE-14mA0Ex6&O`Scy@xx0mWjq;|izhM&7u6lRlh;iiq7 zp{kvMX^{(-t}AH!jWwRcELC6=!rJ`yfAxOT6Q!XVR}OQPtcrT`Pl_5|RQxRn8-_Zg zkJY#-ry`GauXIUj&y%r+dd^>7-5z0!R;8(MOCic`X;o^?y-dq8Rr}Pq)z7t93tGW1 DbFkAO literal 0 HcmV?d00001 diff --git a/gestaoRaul/gestaoRaul/decorators.py b/gestaoRaul/gestaoRaul/decorators.py new file mode 100644 index 0000000..22df2c4 --- /dev/null +++ b/gestaoRaul/gestaoRaul/decorators.py @@ -0,0 +1,14 @@ +from django.utils.decorators import method_decorator +from django.http import HttpResponseForbidden + + +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) + else: + return HttpResponseForbidden('tu nao tem acesso rapa') + return wrapper + return decorator + diff --git a/gestaoRaul/home/__pycache__/views.cpython-310.pyc b/gestaoRaul/home/__pycache__/views.cpython-310.pyc index d93498a9d829b20c26c73a3c453ed8e9badf2faa..3e326ca74a9d75e5fbc521e43591f94d2bacb61d 100644 GIT binary patch delta 1096 zcmY+D&rcIU6vyYs{_eJg0u?Q&h{OoF9ub%uTJnYHDf5H>-%?cHE^S*uic{|hh-o7~~|0pd)#iE1YdiedY`Nl%% zw|cmEQFwR)7M~n1tUpD}3d-S#H-ZsE%nnAwidVsiSD3>JN0_;+c!2h?H#Q_CR?f*d z8(Bs3qsRTl>O?I4&CRuthZ|h13BKKJ3C@mx-PxPRS*a^!vM zhrEF=q-cO|gDt8oKY>Wp#%&@g!~2*K$ckP?J$y#BOOzN19o9VEXaYXtKGY1$-w+;zxs>?zGZGfdTA&H)7%sJ8bDHK{*$@CpR=tAC^ zE+gp&qLj{&0d++o{X=HVjQT+!?6gK7OpQX)VoXUz$%K+|kS|C~rvZJoSAvJQ3Q{Fi z>|hJK#J~pDPFPXSrsQWBzb?Q4U{vob2-iU-RBM}QYiO4HAqR{U!Kdy%n<3TLclzYX0>76rGmRH{L zKZbBhhHt9x?@cs0G$nfFcZ2i2SJmb&1oM#*Dzgg}<+bHyS&!f^y8(Z!4qB}0a*>Ni Q;D(|o7~B?xNi3A`U-_l|jsO4v delta 1126 zcmY*ZO>fjl5bbJrdu)&ABZNR8K{zb18zF%};^Pn@Ac#Gz6d@rk5)uMy+MCR1W<0dp zkw87lVc^IC`M`z4jJN>*fFt4xf52CM0S9gfZIu()tgU*kdR<*E_v`kD=F`@hw9yC{ zUgG7m&95F~UntmraSX1ZWuq5o9xiywf6DH)RG{kkY^(4NTW!4fv|juHCwDrqZ=#F7 zkG4*8-ym4lV?EGK1%_9?GZiy7fo;(9Mk>Aq6S%{S+pG0F<11$ZN<0T8kFYW9vBCdX zPAt_JI~FWo+F@g1>PUskok6c*0_9G?G*t~tdC&Q@rTiHvrh;c2i%QeBOx1C!W4V=9 zsPL7XIP^gqrM#{N-C=$i`(E2RfA#OQ^YL9Y{P;SJlFY2n1*@d}MV(+PZV#RV>= z72TqteXOk5HnOe%*hiPloH<}|dzg8`C8p#OZlkeR@uK1pfAN0B;|E|q;!pm>yQ1Kht>R*}cZ@%YSly@xfjAlYR^O1OXM;*Fr>L)rYr+Rq}pvl@5MJ+cIP!wDArd K>;gOVocê não esta logado ou não tem permissão!'}) total_pagamentos = Payments.objects.aggregate(total=Sum('value'))['total'] qdt_pagamentos = Payments.objects.aggregate(total=Count('value'))['total'] pagamentos = Payments.objects.all() @@ -21,22 +23,13 @@ def home(request): nome=F('product__name') ).order_by('-quantidade')[:5] return render(request, 'home.html', {'total_pagamentos': total_pagamentos, 'pagamentos': pagamentos, 'qdt_pagamentos': qdt_pagamentos, 'produtos_mais_vendidos': produtos_mais_vendidos, 'ticekMedio': ticekMedio}) - +@group_required(groupName='Gerente') def chartCuisine(request): - - user = request.user.groups.all() - for u in user: - print(type(u)) - # print(user.email) - print(request.user.first_name) - print(request.user.last_name) - - if 'Admin' in str(user): - print('tem permisão admin') - tFila = [] tPreparando = [] tFinalizado = [] + dataStart = request.GET.get("data-start") + dataEnd = request.GET.get("data-end") orders = Order.objects.filter(delivered__isnull=False)