diff --git a/lms/lms/utils.py b/lms/lms/utils.py
index 047b43f7..22f78197 100644
--- a/lms/lms/utils.py
+++ b/lms/lms/utils.py
@@ -435,16 +435,16 @@ def redirect_to_courses_list():
raise frappe.Redirect
-def has_course_instructor_role():
+def has_course_instructor_role(member=None):
return frappe.db.get_value("Has Role", {
- "parent": frappe.session.user,
+ "parent": member or frappe.session.user,
"role": "Course Instructor"
}, "name")
-def has_course_moderator_role():
+def has_course_moderator_role(member=None):
return frappe.db.get_value("Has Role", {
- "parent": frappe.session.user,
+ "parent": member or frappe.session.user,
"role": "Course Moderator"
}, "name")
@@ -453,5 +453,5 @@ def get_courses_under_review():
return frappe.get_all("LMS Course", {
"status": "Under Review"
}, ["name", "upcoming", "title", "image", "enable_certification", "status", "published"]
- )
+)
diff --git a/lms/overrides/user.py b/lms/overrides/user.py
index 52db13c7..820a4be5 100644
--- a/lms/overrides/user.py
+++ b/lms/overrides/user.py
@@ -330,3 +330,22 @@ def get_users(or_filters, start, page_length, text):
""".format(or_filters = or_filters, start=start, page_length=page_length), as_dict=1)
return users
+
+
+@frappe.whitelist()
+def save_role(user, role, value):
+ if cint(value):
+ doc = frappe.get_doc({
+ "doctype": "Has Role",
+ "parent": user,
+ "role": role,
+ "parenttype": "User",
+ "parentfield": "roles"
+ })
+ doc.save(ignore_permissions=True)
+ else:
+ frappe.db.delete("Has Role", {
+ "parent": user,
+ "role": role
+ })
+ return True
diff --git a/lms/public/css/style.css b/lms/public/css/style.css
index b8b2b9f7..d24d8ff8 100644
--- a/lms/public/css/style.css
+++ b/lms/public/css/style.css
@@ -1686,3 +1686,8 @@ li {
.review-link {
float: right
}
+
+.role {
+ margin-bottom: 0;
+ cursor: pointer;
+}
diff --git a/lms/www/courses/course.html b/lms/www/courses/course.html
index 7472880a..4fdaf48e 100644
--- a/lms/www/courses/course.html
+++ b/lms/www/courses/course.html
@@ -214,7 +214,7 @@
{% macro CourseSettings(course) %}
- {% if has_course_moderator_role() %}
+ {% if course.edit_mode and has_course_moderator_role() %}