update check_cid_user
This commit is contained in:
+11
-2
@@ -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
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user