From 59e22c723bc9d1308d0dd3835e710eea45f3cf69 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Sun, 13 Sep 2015 14:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=AC=E5=91=8A=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- announcement/views.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/announcement/views.py b/announcement/views.py index 818aa0a..6790e8c 100644 --- a/announcement/views.py +++ b/announcement/views.py @@ -16,8 +16,21 @@ def announcement_page(request, announcement_id): try: announcement = Announcement.objects.get(id=announcement_id, visible=True) except Announcement.DoesNotExist: - return error_page(request, u"模板不存在") - return render(request, "oj/announcement/announcement.html", {"announcement": announcement}) + return error_page(request, u"公告不存在") + # 公开的公告 + if announcement.is_global == 0: + return render(request, "oj/announcement/announcement.html", {"announcement": announcement}) + else: + if not request.user.is_authenticated(): + return error_page(request, u"公告不存在") + # 判断是不是在组里面 + if request.user.admin_type == SUPER_ADMIN or request.user == announcement.created_by: + return render(request, "oj/announcement/announcement.html", {"announcement": announcement}) + else: + if request.user.groups.filter(id__in=[item.id for item in announcement.groups.all()]).exists(): + return render(request, "oj/announcement/announcement.html", {"announcement": announcement}) + else: + return error_page(request, u"公告不存在") class AnnouncementAdminAPIView(APIView):