From 9cf08261b9d8695af66d1e040a516046efacbff0 Mon Sep 17 00:00:00 2001 From: jagonzalr Date: Fri, 18 Nov 2016 14:16:57 +0200 Subject: [PATCH] check for course creator role for library creation --- cms/djangoapps/contentstore/views/course.py | 39 ++++++++++----------- cms/envs/common.py | 1 + 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index 21a63c164d..93b108f4e1 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -468,9 +468,9 @@ def course_listing(request): """ courses, in_process_course_actions = get_courses_accessible_to_user(request) user = request.user - user_has_permission =\ + user_can_see_libraries =\ user.is_active and (user.is_staff or CourseCreatorRole().has_user(user)) - libraries = _accessible_libraries_list(request.user) if LIBRARIES_ENABLED and user_has_permission else [] + libraries = _accessible_libraries_list(request.user) if LIBRARIES_ENABLED and user_can_see_libraries else [] programs_config = ProgramsApiConfig.current() raw_programs = get_programs(request.user) if programs_config.is_studio_tab_enabled else [] @@ -519,16 +519,16 @@ def course_listing(request): return render_to_response('index.html', { 'courses': courses, 'in_process_course_actions': in_process_course_actions, - 'libraries_enabled': LIBRARIES_ENABLED, - 'libraries': [format_library_for_view(lib) for lib in libraries], - 'show_new_library_button': _get_library_creation_status(user), - 'user': request.user, + 'user': user, 'request_course_creator_url': reverse('contentstore.views.request_course_creator'), 'course_creator_status': _get_course_creator_status(user), 'rerun_creator_status': GlobalStaff().has_user(user), 'allow_unicode_course_id': settings.FEATURES.get('ALLOW_UNICODE_COURSE_ID', False), 'allow_course_reruns': settings.FEATURES.get('ALLOW_COURSE_RERUNS', True), - 'is_programs_enabled': programs_config.is_studio_tab_enabled and request.user.is_staff, + 'libraries_enabled': LIBRARIES_ENABLED, + 'libraries': [format_library_for_view(lib) for lib in libraries], + 'library_creator_status': _get_library_creator_status(user), + 'is_programs_enabled': programs_config.is_studio_tab_enabled and user.is_staff, 'programs': programs, 'program_authoring_url': reverse('programs') }) @@ -1652,23 +1652,22 @@ def _get_course_creator_status(user): return course_creator_status -def _get_library_creation_status(user): +def _get_library_creator_status(user): """ Helper method for returning the library creation status for a particular user, taking into account the values of DISABLE_LIBRARY_CREATION and LIBRARIES_ENABLED. """ - if LIBRARIES_ENABLED: - if user.is_active: - if user.is_staff or CourseCreatorRole().has_user(user): - if not settings.FEATURES.get('DISABLE_LIBRARY_CREATION', False): - return True - else: - return False - else: - return False - else: - return False + if not LIBRARIES_ENABLED: + library_creator_status = 'disallowed_for_this_site' + elif user.is_staff: + library_creator_status = 'granted' + elif CourseCreatorRole().has_user(user): + library_creator_status = 'granted' + elif settings.FEATURES.get('DISABLE_LIBRARY_CREATION', False): + library_creator_status = 'disallowed_for_this_site' else: - return False + library_creator_status = 'disallowed_for_this_site' + + return library_creator_status diff --git a/cms/envs/common.py b/cms/envs/common.py index 364bc5299d..3c94ee9ed1 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -167,6 +167,7 @@ FEATURES = { # Enable support for content libraries. Note that content libraries are # only supported in courses using split mongo. + 'ENABLE_CONTENT_LIBRARIES': True, 'DISABLE_LIBRARY_CREATION': False, # Milestones application flag