diff --git a/lms/install.py b/lms/install.py index 31ce9318..bd172e32 100644 --- a/lms/install.py +++ b/lms/install.py @@ -7,6 +7,7 @@ def after_install(): create_batch_source() give_discussions_permission() give_user_list_permission() + give_event_permission() def after_sync(): @@ -189,8 +190,22 @@ def give_user_list_permission(): create_role(doctype, "System Manager", 1) -def create_role(doctype, role, permlevel): +def give_event_permission(): + doctype = "Event" + roles = ["Moderator", "Batch Evaluator"] + for role in roles: + permlevel = 0 + create_role(doctype, role, permlevel, 1, 1) + create_role(doctype, "System Manager", 0, 1, 1) + + +def create_role(doctype, role, permlevel, write=0, create=0): if not frappe.db.exists("Custom DocPerm", {"parent": doctype, "role": role, "permlevel": permlevel}): + if not write and not create: + if role in ["Moderator", "System Manager"]: + write = 1 + if role == "Moderator": + create = 1 doc = frappe.new_doc("Custom DocPerm") doc.update( { @@ -198,8 +213,9 @@ def create_role(doctype, role, permlevel): "parent": doctype, "role": role, "read": 1, - "write": 1 if role in ["Moderator", "System Manager"] else 0, - "create": 1 if role == "Moderator" else 0, + "select": 1, + "write": write, + "create": create, "permlevel": permlevel, } ) diff --git a/lms/patches.txt b/lms/patches.txt index 4ce25b76..9f73a032 100644 --- a/lms/patches.txt +++ b/lms/patches.txt @@ -121,4 +121,5 @@ lms.patches.v2_0.give_user_list_permission #11-02-2026 lms.patches.v2_0.rename_badge_assignment_event lms.patches.v2_0.enable_allow_job_posting lms.patches.v2_0.set_conferencing_provider_for_zoom -lms.patches.v2_0.sync_evaluator_roles \ No newline at end of file +lms.patches.v2_0.sync_evaluator_roles +lms.patches.v2_0.give_event_permission #10-03-2026 \ No newline at end of file diff --git a/lms/patches/v2_0/give_event_permission.py b/lms/patches/v2_0/give_event_permission.py new file mode 100644 index 00000000..18198552 --- /dev/null +++ b/lms/patches/v2_0/give_event_permission.py @@ -0,0 +1,5 @@ +from lms.install import give_event_permission + + +def execute(): + give_event_permission()