update check_cid_user
This commit is contained in:
+11
-2
@@ -43,12 +43,14 @@ def findMiddle(input_list):
|
|||||||
else:
|
else:
|
||||||
return input_list[int(middle)]
|
return input_list[int(middle)]
|
||||||
|
|
||||||
|
|
||||||
class Modality(models.Model):
|
class Modality(models.Model):
|
||||||
modality = models.CharField(max_length=200)
|
modality = models.CharField(max_length=200)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.modality
|
return self.modality
|
||||||
|
|
||||||
|
|
||||||
class Plane(models.Model):
|
class Plane(models.Model):
|
||||||
plane = models.CharField(max_length=200, unique=True)
|
plane = models.CharField(max_length=200, unique=True)
|
||||||
|
|
||||||
@@ -355,10 +357,14 @@ class ExamCollectionGenericBase(models.Model):
|
|||||||
authors = [i for i in self.author.all()]
|
authors = [i for i in self.author.all()]
|
||||||
return authors
|
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(
|
def check_cid_user(
|
||||||
self,
|
self,
|
||||||
cid: int | None,
|
cid: int | None = None,
|
||||||
passcode: str | None,
|
passcode: str | None = None,
|
||||||
request: HttpRequest | None = None,
|
request: HttpRequest | None = None,
|
||||||
user_id: int | None = None,
|
user_id: int | None = None,
|
||||||
allow_authors: bool = True,
|
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():
|
if not self.valid_cid_users.exists() and not self.valid_user_users.exists():
|
||||||
return False
|
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
|
# Start by checking if the logged in user can access
|
||||||
if user_id is not None:
|
if user_id is not None:
|
||||||
if self.valid_user_users.filter(pk=user_id).exists():
|
if self.valid_user_users.filter(pk=user_id).exists():
|
||||||
|
|||||||
+1
-1
@@ -1796,7 +1796,7 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
if not exam.exam_mode:
|
if not exam.exam_mode:
|
||||||
raise Http404("Packet not in 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")
|
raise Http404("Error accessing exam")
|
||||||
|
|
||||||
if user is not None:
|
if user is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user