update check_cid_user

This commit is contained in:
Ross
2023-06-26 11:51:16 +01:00
parent dc195effc6
commit 09951286e2
2 changed files with 12 additions and 3 deletions
+11 -2
View File
@@ -43,12 +43,14 @@ def findMiddle(input_list):
else:
return input_list[int(middle)]
class Modality(models.Model):
modality = models.CharField(max_length=200)
def __str__(self):
return self.modality
class Plane(models.Model):
plane = models.CharField(max_length=200, unique=True)
@@ -355,10 +357,14 @@ class ExamCollectionGenericBase(models.Model):
authors = [i for i in self.author.all()]
return authors
def check_logged_in_user(self, request: HttpRequest):
"""Helper to check if the logged in user can access the exam"""
return self.check_cid_user(request=request, user_id=request.user.id)
def check_cid_user(
self,
cid: int | None,
passcode: str | None,
cid: int | None = None,
passcode: str | None = None,
request: HttpRequest | None = None,
user_id: int | None = None,
allow_authors: bool = True,
@@ -375,6 +381,9 @@ class ExamCollectionGenericBase(models.Model):
if not self.valid_cid_users.exists() and not self.valid_user_users.exists():
return False
if cid is None and user_id is None:
user_id = request.user.id
# Start by checking if the logged in user can access
if user_id is not None:
if self.valid_user_users.filter(pk=user_id).exists():
+1 -1
View File
@@ -1796,7 +1796,7 @@ class ExamViews(View, LoginRequiredMixin):
if not exam.exam_mode:
raise Http404("Packet not in exam mode")
if cid is not None and not exam.check_cid_user(cid, passcode, request):
if not exam.check_cid_user(cid, passcode, request):
raise Http404("Error accessing exam")
if user is not None: