This commit is contained in:
Ross
2022-01-07 11:16:57 +00:00
parent f995674f88
commit 9d4545f721
+18 -7
View File
@@ -71,9 +71,8 @@ class CidManagerRequiredMixin(object):
obj = super().get_object(*args, **kwargs) obj = super().get_object(*args, **kwargs)
if self.request.user.groups.filter(name="cid_user_manager").exists(): if self.request.user.groups.filter(name="cid_user_manager").exists():
return obj return obj
if self.request.user not in obj.author.all():
raise PermissionDenied() # or Http404 raise PermissionDenied() # or Http404
return obj
def normaliseRapidsScore(score): def normaliseRapidsScore(score):
if score == 49: if score == 49:
@@ -371,7 +370,12 @@ class ExamViews(View, LoginRequiredMixin):
True if request.POST.get("publish_results") == "true" else False True if request.POST.get("publish_results") == "true" else False
) )
exam.save() exam.save()
data = {"status": "success", "publish_results": exam.publish_results, "name": exam.name, "id": exam.id} data = {
"status": "success",
"publish_results": exam.publish_results,
"name": exam.name,
"id": exam.id,
}
return JsonResponse(data, status=200) return JsonResponse(data, status=200)
else: else:
data = {"status": "error"} data = {"status": "error"}
@@ -385,7 +389,12 @@ class ExamViews(View, LoginRequiredMixin):
exam.active = True if request.POST.get("active") == "true" else False exam.active = True if request.POST.get("active") == "true" else False
exam.save() exam.save()
data = {"status": "success", "active": exam.active, "name": exam.name, "id": exam.id} data = {
"status": "success",
"active": exam.active,
"name": exam.name,
"id": exam.id,
}
return JsonResponse(data, status=200) return JsonResponse(data, status=200)
else: else:
data = {"status": "error"} data = {"status": "error"}
@@ -865,10 +874,10 @@ class ExamViews(View, LoginRequiredMixin):
c = CidUser.objects.filter(cid=request.POST.get("cid")).first() c = CidUser.objects.filter(cid=request.POST.get("cid")).first()
exam = self.Exam.objects.get(pk=exam_id) exam = self.Exam.objects.get(pk=exam_id)
t = timezone.make_aware(datetime.fromtimestamp(float(request.POST.get("start_time")))) t = timezone.make_aware(
cid_user_exam = exam.get_or_create_cid_user_exam( datetime.fromtimestamp(float(request.POST.get("start_time")))
cid_user=c, start_time=t
) )
cid_user_exam = exam.get_or_create_cid_user_exam(cid_user=c, start_time=t)
cid_user_exam.end_time = timezone.now() cid_user_exam.end_time = timezone.now()
cid_user_exam.save() cid_user_exam.save()
@@ -1348,6 +1357,7 @@ def group_email(request, pk, resend=False):
{"sent": sent, "not_sent": not_sent, "users_count": users.count()}, {"sent": sent, "not_sent": not_sent, "users_count": users.count()},
) )
@login_required @login_required
@user_is_cid_user_manager @user_is_cid_user_manager
def group_email_results(request, pk, resend=False): def group_email_results(request, pk, resend=False):
@@ -1373,6 +1383,7 @@ def group_email_results(request, pk, resend=False):
{"sent": sent, "not_sent": not_sent, "users_count": users.count()}, {"sent": sent, "not_sent": not_sent, "users_count": users.count()},
) )
@login_required @login_required
@user_is_cid_user_manager @user_is_cid_user_manager
def manage_cid_users(request): def manage_cid_users(request):