Merge pull request #419 from pateljannat/course-permission-messages
This commit is contained in:
@@ -205,7 +205,8 @@ jinja = {
|
|||||||
"lms.lms.utils.get_lesson_count",
|
"lms.lms.utils.get_lesson_count",
|
||||||
"lms.lms.utils.get_all_memberships",
|
"lms.lms.utils.get_all_memberships",
|
||||||
"lms.lms.utils.get_filtered_membership",
|
"lms.lms.utils.get_filtered_membership",
|
||||||
"lms.lms.utils.show_start_learing_cta"
|
"lms.lms.utils.show_start_learing_cta",
|
||||||
|
"lms.lms.utils.can_create_courses"
|
||||||
],
|
],
|
||||||
"filters": []
|
"filters": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -466,6 +466,14 @@ def has_course_instructor_role(member=None):
|
|||||||
}, "name")
|
}, "name")
|
||||||
|
|
||||||
|
|
||||||
|
def can_create_courses(member=None):
|
||||||
|
if not member:
|
||||||
|
member = frappe.session.user
|
||||||
|
|
||||||
|
portal_course_creation = frappe.db.get_single_value("LMS Settings", "portal_course_creation")
|
||||||
|
return frappe.session.user != "Guest" and (portal_course_creation == "Anyone" or has_course_instructor_role(member))
|
||||||
|
|
||||||
|
|
||||||
def has_course_moderator_role(member=None):
|
def has_course_moderator_role(member=None):
|
||||||
return frappe.db.get_value("Has Role", {
|
return frappe.db.get_value("Has Role", {
|
||||||
"parent": member or frappe.session.user,
|
"parent": member or frappe.session.user,
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import frappe
|
import frappe
|
||||||
from lms.www.utils import get_common_context, redirect_to_lesson
|
from lms.www.utils import get_common_context, redirect_to_lesson
|
||||||
from lms.lms.utils import get_lesson_url, has_course_moderator_role, is_instructor, redirect_to_courses_list
|
from lms.lms.utils import get_lesson_url, has_course_moderator_role, is_instructor
|
||||||
from frappe.utils import cstr, flt
|
from frappe.utils import cstr, flt
|
||||||
|
from frappe import _
|
||||||
|
|
||||||
|
|
||||||
def get_context(context):
|
def get_context(context):
|
||||||
get_common_context(context)
|
get_common_context(context)
|
||||||
@@ -28,7 +30,7 @@ def get_context(context):
|
|||||||
|
|
||||||
if frappe.form_dict.get("edit"):
|
if frappe.form_dict.get("edit"):
|
||||||
if not instructor and not has_course_moderator_role():
|
if not instructor and not has_course_moderator_role():
|
||||||
redirect_to_courses_list()
|
raise frappe.PermissionError(_("You do not have permission to access this page."))
|
||||||
context.lesson.edit_mode = True
|
context.lesson.edit_mode = True
|
||||||
else:
|
else:
|
||||||
neighbours = get_neighbours(lesson_number, context.lessons)
|
neighbours = get_neighbours(lesson_number, context.lessons)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import frappe
|
import frappe
|
||||||
from lms.lms.utils import get_membership, has_course_moderator_role, is_instructor, is_certified, get_evaluation_details, redirect_to_courses_list
|
from lms.lms.utils import can_create_courses, get_membership, has_course_moderator_role, is_instructor, is_certified, get_evaluation_details, redirect_to_courses_list
|
||||||
|
from frappe import _
|
||||||
|
|
||||||
def get_context(context):
|
def get_context(context):
|
||||||
context.no_cache = 1
|
context.no_cache = 1
|
||||||
@@ -11,8 +11,13 @@ def get_context(context):
|
|||||||
redirect_to_courses_list()
|
redirect_to_courses_list()
|
||||||
|
|
||||||
if course_name == "new-course":
|
if course_name == "new-course":
|
||||||
if frappe.session.user == "Guest":
|
if not can_create_courses():
|
||||||
redirect_to_courses_list()
|
message = "You do not have permission to access this page."
|
||||||
|
if frappe.session.user == "Guest":
|
||||||
|
message = "Please login to access this page."
|
||||||
|
|
||||||
|
raise frappe.PermissionError(_(message))
|
||||||
|
|
||||||
context.course = frappe._dict()
|
context.course = frappe._dict()
|
||||||
context.course.edit_mode = True
|
context.course.edit_mode = True
|
||||||
context.membership = None
|
context.membership = None
|
||||||
@@ -29,12 +34,11 @@ def set_course_context(context, course_name):
|
|||||||
|
|
||||||
if frappe.form_dict.get("edit"):
|
if frappe.form_dict.get("edit"):
|
||||||
if not is_instructor(course.name) and not has_course_moderator_role():
|
if not is_instructor(course.name) and not has_course_moderator_role():
|
||||||
redirect_to_courses_list()
|
raise frappe.PermissionError(_("You do not have permission to access this page."))
|
||||||
course.edit_mode = True
|
course.edit_mode = True
|
||||||
|
|
||||||
if course is None:
|
if course is None:
|
||||||
frappe.local.flags.redirect_location = "/courses"
|
redirect_to_courses_list()
|
||||||
raise frappe.Redirect
|
|
||||||
|
|
||||||
related_courses = frappe.get_all("Related Courses", {"parent": course.name}, ["course"])
|
related_courses = frappe.get_all("Related Courses", {"parent": course.name}, ["course"])
|
||||||
for csr in related_courses:
|
for csr in related_courses:
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from lms.lms.utils import has_course_instructor_role, has_course_moderator_role, check_profile_restriction, get_restriction_details
|
from lms.lms.utils import can_create_courses, has_course_moderator_role, check_profile_restriction, get_restriction_details
|
||||||
|
|
||||||
|
|
||||||
def get_context(context):
|
def get_context(context):
|
||||||
context.no_cache = 1
|
context.no_cache = 1
|
||||||
context.live_courses, context.upcoming_courses = get_courses()
|
context.live_courses, context.upcoming_courses = get_courses()
|
||||||
context.restriction = check_profile_restriction()
|
context.restriction = check_profile_restriction()
|
||||||
portal_course_creation = frappe.db.get_single_value("LMS Settings", "portal_course_creation")
|
context.show_creators_section = can_create_courses()
|
||||||
context.show_creators_section = frappe.session.user != "Guest" and \
|
|
||||||
(portal_course_creation == "Anyone" or has_course_instructor_role())
|
|
||||||
context.show_review_section = has_course_moderator_role() and frappe.session.user != "Guest"
|
context.show_review_section = has_course_moderator_role() and frappe.session.user != "Guest"
|
||||||
|
|
||||||
if context.restriction:
|
if context.restriction:
|
||||||
|
|||||||
Reference in New Issue
Block a user