fix: permission checks for api

This commit is contained in:
Jannat Patel
2026-02-16 18:20:02 +05:30
parent eba1815390
commit 7e683f8b44
2 changed files with 10 additions and 7 deletions

View File

@@ -1511,6 +1511,7 @@ def validate_meta_data_permissions(meta_type: str):
@frappe.whitelist()
def create_programming_exercise_submission(exercise: str, submission: str, code: str, test_cases: list):
frappe.only_for(["Moderator", "Course Creator", "Batch Evaluator"])
if submission == "new":
return make_new_exercise_submission(exercise, code, test_cases)
else:
@@ -2037,7 +2038,7 @@ def get_upcoming_batches():
@frappe.whitelist()
def delete_programming_exercise(exercise: str):
frappe.only_for(["Moderator", "Course Creator"])
frappe.only_for(["Moderator", "Course Creator", "Batch Evaluator"])
frappe.db.delete("LMS Programming Exercise Submission", {"exercise": exercise})
frappe.db.delete("LMS Programming Exercise", exercise)

View File

@@ -1010,12 +1010,7 @@ def get_lesson(course: str, chapter: int, lesson: int) -> dict:
as_dict=1,
)
if (
not lesson_details.include_in_preview
and not membership
and not has_moderator_role()
and not is_instructor(course)
):
if not lesson_details.include_in_preview and not membership and not can_modify_course(course):
return {
"no_preview": 1,
"title": lesson_details.title,
@@ -2050,6 +2045,13 @@ def get_program_details(program_name: str) -> dict:
if not guest_access_allowed():
frappe.throw(_("Please login to view program details."))
is_published = frappe.db.get_value("LMS Program", program_name, "published")
is_member = frappe.db.exists(
"LMS Program Member", {"parent": program_name, "member": frappe.session.user}
)
if not is_published and not is_member:
frappe.throw(_("You are not authorized to view the details of this program."))
program = frappe.db.get_value(
"LMS Program",
program_name,