diff --git a/cms/djangoapps/contentstore/views/__init__.py b/cms/djangoapps/contentstore/views/__init__.py index e17b27e9b1..d31102c58e 100644 --- a/cms/djangoapps/contentstore/views/__init__.py +++ b/cms/djangoapps/contentstore/views/__init__.py @@ -9,4 +9,3 @@ from public import * from user import * from tabs import * from requests import * - diff --git a/cms/djangoapps/contentstore/views/access.py b/cms/djangoapps/contentstore/views/access.py index 37f6fcb767..0e4985ff8a 100644 --- a/cms/djangoapps/contentstore/views/access.py +++ b/cms/djangoapps/contentstore/views/access.py @@ -3,6 +3,7 @@ from auth.authz import is_user_in_course_group_role from contentstore.utils import get_course_location_for_item from django.core.exceptions import PermissionDenied + def get_location_and_verify_access(request, org, course, name): """ Create the location tuple verify that the user has permissions diff --git a/cms/djangoapps/contentstore/views/assets.py b/cms/djangoapps/contentstore/views/assets.py index 04eb0c0ed6..edc1c977ab 100644 --- a/cms/djangoapps/contentstore/views/assets.py +++ b/cms/djangoapps/contentstore/views/assets.py @@ -1,4 +1,8 @@ -import logging, json, os, tarfile, shutil +import logging +import json +import os +import tarfile +import shutil from tempfile import mkdtemp from path import path @@ -27,6 +31,7 @@ from auth.authz import create_all_course_groups __all__ = ['asset_index', 'upload_asset', 'import_course', 'generate_export_course', 'export_course'] + @login_required @ensure_csrf_cookie def asset_index(request, org, course, name): @@ -135,6 +140,7 @@ def upload_asset(request, org, course, coursename): response['asset_url'] = StaticContent.get_url_path_from_location(content.location) return response + @ensure_csrf_cookie @login_required def import_course(request, org, course, name): @@ -240,6 +246,7 @@ def generate_export_course(request, org, course, name): response['Content-Length'] = os.path.getsize(export_file.name) return response + @ensure_csrf_cookie @login_required def export_course(request, org, course, name): @@ -253,4 +260,3 @@ def export_course(request, org, course, name): 'active_tab': 'export', 'successful_import_redirect_url': '' }) - diff --git a/cms/djangoapps/contentstore/views/checklist.py b/cms/djangoapps/contentstore/views/checklist.py index a86c751c14..d6efdefdc3 100644 --- a/cms/djangoapps/contentstore/views/checklist.py +++ b/cms/djangoapps/contentstore/views/checklist.py @@ -14,6 +14,7 @@ from access import get_location_and_verify_access __all__ = ['get_checklists', 'update_checklist'] + @ensure_csrf_cookie @login_required def get_checklists(request, org, course, name): @@ -101,7 +102,3 @@ def expand_checklist_action_urls(course_module): modified = True return checklists, modified - - - - diff --git a/cms/djangoapps/contentstore/views/component.py b/cms/djangoapps/contentstore/views/component.py index f2a63c9b2c..00fcce9f2b 100644 --- a/cms/djangoapps/contentstore/views/component.py +++ b/cms/djangoapps/contentstore/views/component.py @@ -1,4 +1,5 @@ -import json, logging +import json +import logging from collections import defaultdict from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseForbidden @@ -23,7 +24,7 @@ from contentstore.utils import get_modulestore, get_lms_link_for_item, \ from models.settings.course_grading import CourseGradingModel from requests import get_request_method, _xmodule_recurse -from access import has_access, get_location_and_verify_access +from access import has_access # TODO: should explicitly enumerate exports with __all__ @@ -269,23 +270,6 @@ def unpublish_unit(request): return HttpResponse() -@login_required -@ensure_csrf_cookie -def static_pages(request, org, course, coursename): - - location = get_location_and_verify_access(request, org, course, coursename) - - course = modulestore().get_item(location) - - return render_to_response('static-pages.html', { - 'active_tab': 'pages', - 'context_course': course, - }) - - -def edit_static(request, org, course, coursename): - return render_to_response('edit-static-page.html', {}) - @expect_json @login_required @ensure_csrf_cookie @@ -311,5 +295,3 @@ def module_info(request, module_location): return HttpResponse(json.dumps(set_module_info(get_modulestore(location), location, request.POST)), mimetype="application/json") else: return HttpResponseBadRequest() - - diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index 336a4ad0fe..f1414faf4e 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -1,4 +1,5 @@ -import json, time +import json +import time from django.contrib.auth.decorators import login_required from django_future.csrf import ensure_csrf_cookie @@ -27,6 +28,7 @@ from component import OPEN_ENDED_COMPONENT_TYPES, ADVANCED_COMPONENT_POLICY_KEY # TODO: should explicitly enumerate exports with __all__ + @login_required @ensure_csrf_cookie def course_index(request, org, course, name): @@ -188,6 +190,7 @@ def course_info_updates(request, org, course, provided_id=None): return HttpResponseBadRequest("Failed to save", content_type="text/plain") + @login_required @ensure_csrf_cookie def get_course_settings(request, org, course, name): @@ -362,5 +365,3 @@ def course_advanced_updates(request, org, course, name): filter_tabs = False response_json = json.dumps(CourseMetadata.update_from_json(location, request_body, filter_tabs=filter_tabs)) return HttpResponse(response_json, mimetype="application/json") - - diff --git a/cms/djangoapps/contentstore/views/error.py b/cms/djangoapps/contentstore/views/error.py index 64d1538d5d..0422452c47 100644 --- a/cms/djangoapps/contentstore/views/error.py +++ b/cms/djangoapps/contentstore/views/error.py @@ -19,5 +19,3 @@ def render_404(request): def render_500(request): return HttpResponseServerError(render_to_string('500.html', {})) - - diff --git a/cms/djangoapps/contentstore/views/item.py b/cms/djangoapps/contentstore/views/item.py index ac82e38577..67f1da2710 100644 --- a/cms/djangoapps/contentstore/views/item.py +++ b/cms/djangoapps/contentstore/views/item.py @@ -136,4 +136,3 @@ def delete_item(request): modulestore('direct').update_children(parent.location, parent.children) return HttpResponse() - diff --git a/cms/djangoapps/contentstore/views/public.py b/cms/djangoapps/contentstore/views/public.py index fe8a2b7a91..1049b29a28 100644 --- a/cms/djangoapps/contentstore/views/public.py +++ b/cms/djangoapps/contentstore/views/public.py @@ -14,6 +14,7 @@ __all__ = ['signup', 'old_login_redirect', 'login_page', 'howitworks', 'ux_alert Public views """ + @ensure_csrf_cookie def signup(request): """ @@ -49,9 +50,9 @@ def howitworks(request): else: return render_to_response('howitworks.html', {}) + def ux_alerts(request): """ static/proof-of-concept views """ return render_to_response('ux-alerts.html', {}) - diff --git a/cms/djangoapps/contentstore/views/requests.py b/cms/djangoapps/contentstore/views/requests.py index 07903637d3..b02a13fe3f 100644 --- a/cms/djangoapps/contentstore/views/requests.py +++ b/cms/djangoapps/contentstore/views/requests.py @@ -5,10 +5,12 @@ from mitxmako.shortcuts import render_to_string, render_to_response __all__ = ['edge', 'event', 'landing'] + # points to the temporary course landing page with log in and sign up def landing(request, org, course, coursename): return render_to_response('temp-course-landing.html', {}) + # points to the temporary edge page def edge(request): return render_to_response('university_profiles/edge.html', {}) @@ -35,6 +37,7 @@ def get_request_method(request): return real_method + def create_json_response(errmsg=None): if errmsg is not None: resp = HttpResponse(json.dumps({'Status': 'Failed', 'ErrMsg': errmsg})) @@ -42,6 +45,7 @@ def create_json_response(errmsg=None): resp = HttpResponse(json.dumps({'Status': 'OK'})) return resp + def render_from_lms(template_name, dictionary, context=None, namespace='main'): """ Render a template using the LMS MAKO_TEMPLATES @@ -54,4 +58,3 @@ def _xmodule_recurse(item, action): _xmodule_recurse(child, action) action(item) - diff --git a/cms/djangoapps/contentstore/views/session_kv_store.py b/cms/djangoapps/contentstore/views/session_kv_store.py index 7bfb14351d..309518c27d 100644 --- a/cms/djangoapps/contentstore/views/session_kv_store.py +++ b/cms/djangoapps/contentstore/views/session_kv_store.py @@ -1,5 +1,6 @@ from xblock.runtime import KeyValueStore, InvalidScopeError + class SessionKeyValueStore(KeyValueStore): def __init__(self, request, model_data): self._model_data = model_data diff --git a/cms/djangoapps/contentstore/views/tabs.py b/cms/djangoapps/contentstore/views/tabs.py index b947c163eb..8ecfc31602 100644 --- a/cms/djangoapps/contentstore/views/tabs.py +++ b/cms/djangoapps/contentstore/views/tabs.py @@ -11,9 +11,11 @@ from xmodule.modulestore import Location from xmodule.modulestore.inheritance import own_metadata from xmodule.modulestore.django import modulestore from contentstore.utils import get_course_for_item +from access import get_location_and_verify_access __all__ = ['edit_tabs', 'reorder_static_tabs'] + def initialize_course_tabs(course): # set up the default tabs # I've added this because when we add static tabs, the LMS either expects a None for the tabs list or @@ -75,6 +77,7 @@ def reorder_static_tabs(request): modulestore('direct').update_metadata(course.location, own_metadata(course)) return HttpResponse() + @login_required @ensure_csrf_cookie def edit_tabs(request, org, course, coursename): @@ -109,3 +112,21 @@ def edit_tabs(request, org, course, coursename): 'context_course': course_item, 'components': components }) + + +@login_required +@ensure_csrf_cookie +def static_pages(request, org, course, coursename): + + location = get_location_and_verify_access(request, org, course, coursename) + + course = modulestore().get_item(location) + + return render_to_response('static-pages.html', { + 'active_tab': 'pages', + 'context_course': course, + }) + + +def edit_static(request, org, course, coursename): + return render_to_response('edit-static-page.html', {}) diff --git a/cms/djangoapps/contentstore/views/user.py b/cms/djangoapps/contentstore/views/user.py index 0ead03257b..6b1926bbae 100644 --- a/cms/djangoapps/contentstore/views/user.py +++ b/cms/djangoapps/contentstore/views/user.py @@ -61,6 +61,7 @@ def index(request): 'disable_course_creation': settings.MITX_FEATURES.get('DISABLE_COURSE_CREATION', False) and not request.user.is_staff }) + @login_required @ensure_csrf_cookie def manage_users(request, location): @@ -84,8 +85,6 @@ def manage_users(request, location): }) - - @expect_json @login_required @ensure_csrf_cookie @@ -145,4 +144,3 @@ def remove_user(request, location): remove_user_from_course_group(request.user, user, location, STAFF_ROLE_NAME) return create_json_response() -