From c186393f10a4c899343eb1d2eaaf8bbf01809fbb Mon Sep 17 00:00:00 2001 From: James Williams Date: Thu, 8 Mar 2018 09:05:27 -0700 Subject: [PATCH] don't include quizzes locked by date in epub export test plan: * have a quiz set to be locked until a future date * a student should not be able to see the quiz content in a epub export closes #ADMIN-842 Change-Id: I323bc3df36b8078e88331a08a85abb7914c92efb Reviewed-on: https://gerrit.instructure.com/142958 Tested-by: Jenkins Reviewed-by: Mysti Sadler QA-Review: Deepeeca Soundarrajan Product-Review: James Williams --- lib/cc/qti/qti_generator.rb | 1 + spec/lib/cc/exporter/web_zip/zip_package_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib/cc/qti/qti_generator.rb b/lib/cc/qti/qti_generator.rb index 1d869573b60..c45df068510 100644 --- a/lib/cc/qti/qti_generator.rb +++ b/lib/cc/qti/qti_generator.rb @@ -61,6 +61,7 @@ module CC Quizzes::ScopedToUser.new(@course, @user, @course.quizzes.active).scope.each do |quiz| next unless export_object?(quiz) || export_object?(quiz.assignment) + next if @user && !@course.grants_right?(@user, :read_as_admin) && quiz.locked_for?(@user, check_policies: true) title = if quiz quiz.title diff --git a/spec/lib/cc/exporter/web_zip/zip_package_spec.rb b/spec/lib/cc/exporter/web_zip/zip_package_spec.rb index 0c0844d9554..40385d9cc63 100644 --- a/spec/lib/cc/exporter/web_zip/zip_package_spec.rb +++ b/spec/lib/cc/exporter/web_zip/zip_package_spec.rb @@ -829,6 +829,14 @@ describe "ZipPackage" do }] end + it "should not export quizzes when locked by date" do + quiz = @course.quizzes.create!(title: 'Quiz 1', description: "stuff", + workflow_state: "available", unlock_at: 3.days.from_now) + @module.content_tags.create!(content: quiz, context: @course, indent: 0) + course_data = create_zip_package.parse_course_data + expect(course_data[:quizzes]).to be_empty + end + it "should export linked file items in sub-folders" do folder = @course.folders.create!(name: 'folder#1', parent_folder: Folder.root_folders(@course).first) file = add_file(fixture_file_upload('files/cn_image.jpg', 'image/jpg'), @course, "cn_image.jpg", folder)