From b7bae3be9ce1160ee01b4e4072b15da630798d9a Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sat, 4 Feb 2017 20:09:08 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=81=D0=BB=D0=BE=D0=B2=D0=BD=D0=BE?= =?UTF-8?q?=D0=B5=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B0=D0=B1=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=82=20=D0=BF=D1=80=D0=B0=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/views.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/abonapp/views.py b/abonapp/views.py index 0dfd05f..9f326b6 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- from json import dumps from django.core.exceptions import PermissionDenied - from django.db import IntegrityError from django.db.models import Count from django.shortcuts import render, redirect, get_object_or_404, resolve_url @@ -229,13 +228,15 @@ def abon_services(request, gid, uid): @login_required -@permission_required('abonapp.change_abon') +@mydefs.only_admins def abonhome(request, gid, uid): abon = get_object_or_404(models.Abon, id=uid) abon_group = get_object_or_404(models.AbonGroup, id=gid) frm = None try: if request.method == 'POST': + if not request.user.has_perm('abonapp.change_abon'): + raise PermissionDenied frm = forms.AbonForm(request.POST, instance=abon) if frm.is_valid(): ip_str = request.POST.get('ip') @@ -265,12 +266,19 @@ def abonhome(request, gid, uid): except IpPoolItem.DoesNotExist: messages.error(request, 'Указанный вами ip отсутствует в ip pool') - return render(request, 'abonapp/editAbon.html', { - 'form': frm or forms.AbonForm(instance=abon), - 'abon': abon, - 'abon_group': abon_group, - 'ip': abon.ip_address - }) + if request.user.has_perm('abonapp.change_abon'): + return render(request, 'abonapp/editAbon.html', { + 'form': frm or forms.AbonForm(instance=abon), + 'abon': abon, + 'abon_group': abon_group, + 'ip': abon.ip_address + }) + else: + return render(request, 'abonapp/viewAbon.html', { + 'abon': abon, + 'abon_group': abon_group, + 'ip': abon.ip_address + }) def terminal_pay(request):