fix: misc permission issues

This commit is contained in:
Jannat Patel
2026-02-23 10:29:13 +05:30
parent c596d1e215
commit bb47fd5ba9
3 changed files with 16 additions and 10 deletions

View File

@@ -41,11 +41,10 @@ from lms.lms.utils import (
get_lms_route,
has_course_instructor_role,
has_evaluator_role,
has_lms_role,
has_moderator_role,
)
LMS_ROLES = ["Moderator", "Course Creator", "Batch Evaluator", "LMS Student"]
@frappe.whitelist()
def get_user_info():
@@ -1730,13 +1729,6 @@ def get_profile_details(username: str):
return details
def has_lms_role():
roles = frappe.get_roles()
lms_roles = set(LMS_ROLES)
user_roles = set(roles)
return not lms_roles.isdisjoint(user_roles)
@frappe.whitelist()
def get_streak_info():
all_dates = fetch_activity_dates(frappe.session.user)

View File

@@ -50,7 +50,10 @@ class LMSEnrollment(Document):
)
if self.enrollment_from_batch:
return
if frappe.db.exists(
"LMS Batch Enrollment", {"batch": self.enrollment_from_batch, "member": self.member}
):
return
if not course_details.published and not is_admin():
frappe.throw(_("You cannot enroll in an unpublished course."))

View File

@@ -31,6 +31,7 @@ from pypika import functions as fn
from lms.lms.md import find_macros
RE_SLUG_NOTALLOWED = re.compile("[^a-z0-9]+")
LMS_ROLES = ["Moderator", "Course Creator", "Batch Evaluator", "LMS Student"]
def get_lms_path():
@@ -1210,6 +1211,9 @@ def get_country_code():
@frappe.whitelist()
def get_question_details(question: str) -> dict:
if not has_lms_role():
frappe.throw(_("You are not authorized to view the question details."))
fields = ["question", "type", "multiple"]
for i in range(1, 5):
fields.append(f"option_{i}")
@@ -2302,3 +2306,10 @@ def can_modify_batch(batch: str) -> bool:
if not (has_moderator_role() or is_instructor):
return False
return True
def has_lms_role():
roles = frappe.get_roles()
lms_roles = set(LMS_ROLES)
user_roles = set(roles)
return not lms_roles.isdisjoint(user_roles)