fix: permission checks for api
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user