diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index ec8345f..b65c960 100644 Binary files a/gestaoRaul/db.sqlite3 and b/gestaoRaul/db.sqlite3 differ diff --git a/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc b/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc new file mode 100644 index 0000000..de1ff3c Binary files /dev/null and b/gestaoRaul/gestaoRaul/__pycache__/decorators.cpython-310.pyc differ 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 d93498a..3e326ca 100644 Binary files a/gestaoRaul/home/__pycache__/views.cpython-310.pyc and b/gestaoRaul/home/__pycache__/views.cpython-310.pyc differ diff --git a/gestaoRaul/home/views.py b/gestaoRaul/home/views.py index 41212cc..827ce91 100644 --- a/gestaoRaul/home/views.py +++ b/gestaoRaul/home/views.py @@ -2,15 +2,17 @@ from django.shortcuts import render 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 comandas.models import ProductComanda from orders.models import Order from payments.models import Payments +from gestaoRaul.decorators import group_required + +@group_required(groupName='Gerente') def home(request): - if not request.user.is_authenticated or 'Admin' not in str(request.user.groups.all()): - return HttpResponse({'

Você 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)