From 02e1155495ae2547f14ccd56124862916a3c4da3 Mon Sep 17 00:00:00 2001 From: James Williams Date: Mon, 31 Aug 2015 07:44:24 -0600 Subject: [PATCH 1/4] set respondus lockdown browser high security only when taking quiz test plan: * using the respondus lockdown browser, should be able to log out after submitting a quiz requiring the lockdown browser closes #CNVS-22838 Change-Id: If7b28977fe9ed51444fca145b841cc15ca71eb49 Reviewed-on: https://gerrit.instructure.com/62099 Reviewed-by: Rob Orton Product-Review: Rob Orton QA-Review: Rob Orton Tested-by: Rob Orton --- app/controllers/quizzes/quizzes_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/quizzes/quizzes_controller.rb b/app/controllers/quizzes/quizzes_controller.rb index cdf005ae32f4..573c19bcacf2 100644 --- a/app/controllers/quizzes/quizzes_controller.rb +++ b/app/controllers/quizzes/quizzes_controller.rb @@ -220,6 +220,7 @@ def show @quiz_menu_tools = external_tools_display_hashes(:quiz_menu) @can_take = can_take_quiz? if params[:take] && @can_take + return false if @quiz.require_lockdown_browser? && !check_lockdown_browser(:highest, named_context_url(@context, 'context_quiz_take_url', @quiz.id)) # allow starting the quiz via a GET request, but only when using a lockdown browser if request.post? || (@quiz.require_lockdown_browser? && !quiz_submission_active?) start_quiz! @@ -861,7 +862,6 @@ def can_take_quiz? return true if params[:preview] && can_do(@quiz, @current_user, :update) return false if params[:take] && !authorized_action(@quiz, @current_user, :submit) return false if @submission && @submission.completed? && @submission.attempts_left == 0 - return false if @quiz.require_lockdown_browser? && !check_lockdown_browser(:highest, named_context_url(@context, 'context_quiz_take_url', @quiz.id)) can_take = Quizzes::QuizEligibility.new(course: @context, quiz: @quiz, user: @current_user, From 0222b7e65d4b7d752350448bff70828c8b6ec7d8 Mon Sep 17 00:00:00 2001 From: Transifreq Date: Mon, 31 Aug 2015 05:23:10 -0600 Subject: [PATCH 2/4] Updated tr translation Change-Id: Iaaecbd8562d265af8e9d6a54c9b3b9af4cebc6f7 --- config/locales/tr.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/config/locales/tr.yml b/config/locales/tr.yml index af86565bb095..c47820ba0e44 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -7178,6 +7178,7 @@ tr: title_for_topics_category: "%{category} Başlıkları" warnings: truncated_wiki_title: "Şu wiki sayfanın başlığı kesildi : %{title}" + inbox_bb245a60: "Gelen Kutusu" include_this_assignment_s_grades_when_posting_to_y_6bff3323: "Okulunuzun Öğrenc Bilgi Sistemine göderirken bu ödevin notlarını da dahil et" incorrect_username_and_or_password_2de73abb: "Yanlış kullanıcı adı ve/veya şifre" incremental_update_successfully_generated_against__db3f3f06: "Önceki ÖBS içeri aktarımına karşın artış içeren güncelleme başarıyla oluşturuldu." @@ -7561,6 +7562,13 @@ tr: logout_response_redirect_from_idp: "IdP'den LogoutRequest Alındı" logout_response_redirect_to_idp: "IdP'ye LogoutResponse Gönderiliyor" redirect_from_idp: "IdP'den LoginResponse alındı" + login_6f3d6249: "Oturum Aç" + login_attribute_731a8181: "Oturum Açma Özelliği" + login_is_invalid_must_be_alphanumeric_or_an_email__ae4499b3: "Kullanıcı adı geçersiz: Alfa-sayısal karaktere ya da bir eposta adresi girmelisiniz." + login_is_too_long_25373f95: "Kullanıcı adı çok uzun" + login_label_1dea0f9d: "Oturum Açma Etiketi" + login_with_auth_type_a0aaa52a: "*%{auth_type}* ile oturum aç" + login_with_provider_3fd3998e: "%{provider} ile oturum aç" low_score_4eeb95b2: "En Düşük : %{score}" lower_limit_of_range_6ddd4983: "Aralık alt sınırı" lti: @@ -10204,6 +10212,10 @@ tr: primary_pad: "Primary Pad" sketchpad: SketchPad typewithme: TypeWith.me + facebook: + description: "Facebook ile Giriş" + github: + description: "Github Oturum Açma" google_docs: description: "Google Docs belge paylaşımı" name: "Goolgle Docs" From f9fa071b9737a8e6c65b72ef209cbb39890d3d21 Mon Sep 17 00:00:00 2001 From: Cameron Matheson Date: Wed, 26 Aug 2015 16:09:13 -0600 Subject: [PATCH 3/4] pass user to gradebook.csv background job fixes CNVS-22607 Test plan: * set up a section limited TA * download gradebook csv * ensure you can only see students in your section Change-Id: I20c67d832f7cb234f7527d53747770c0092e9a0d Reviewed-on: https://gerrit.instructure.com/61886 Reviewed-by: Dylan Ross QA-Review: Derek Hansen Tested-by: Jenkins Product-Review: Cameron Matheson --- app/models/course.rb | 2 +- spec/models/course_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/course.rb b/app/models/course.rb index 2ee7474a52b4..3978ee604ff2 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -1508,7 +1508,7 @@ def gradebook_to_csv_in_background(filename, user, options = {}) self, :generate_csv, { preserve_method_args: true }, - options, + options.merge(user: user), attachment ) {attachment_id: attachment.id, progress_id: progress.id} diff --git a/spec/models/course_spec.rb b/spec/models/course_spec.rb index 181ca62021c6..a9708b353515 100644 --- a/spec/models/course_spec.rb +++ b/spec/models/course_spec.rb @@ -868,6 +868,15 @@ def make_date_completed end end +describe Course, "gradebook_to_csv_in_background" do + it "includes the user who is running it" do + teacher_in_course(active_all: true) + @course.gradebook_to_csv_in_background("csv.csv", @teacher) + GradebookExporter.expects(:new).with(@course, user: @teacher).once + run_jobs + end +end + describe Course, "gradebook_to_csv" do it "should generate gradebook csv" do course_with_student(:active_all => true) From c856b5f7f89d164c2d762186c25f7a782310f969 Mon Sep 17 00:00:00 2001 From: Dan Minkevitch Date: Mon, 31 Aug 2015 11:00:01 -0700 Subject: [PATCH 4/4] Fixes issue where some students couldn't be removed from courses fixes CNVS-22845 Test Plan: * Create a user with a sis id, create another user without a sis id * Add both users to a course with any role * Once added select the gear icon for both students * They should both have the option to "Remove From Course" Change-Id: Ia7c663ae02a1c91334e6d00614faa31c94f1ab40 Reviewed-on: https://gerrit.instructure.com/62151 Tested-by: Jenkins Reviewed-by: James Williams QA-Review: Jahnavi Yetukuri Product-Review: Dan Minkevitch --- app/coffeescripts/views/courses/roster/RosterUserView.coffee | 1 + app/views/jst/courses/roster/rosterUser.handlebars | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/coffeescripts/views/courses/roster/RosterUserView.coffee b/app/coffeescripts/views/courses/roster/RosterUserView.coffee index f6f2c65c4de1..3bfcbe358d9e 100644 --- a/app/coffeescripts/views/courses/roster/RosterUserView.coffee +++ b/app/coffeescripts/views/courses/roster/RosterUserView.coffee @@ -50,6 +50,7 @@ define [ json.url = "#{ENV.COURSE_ROOT_URL}/users/#{@model.get('id')}" json.isObserver = @model.hasEnrollmentType('ObserverEnrollment') json.isPending = @model.pending(@model.currentRole) + json.canRemoveStudents = ENV.permissions.manage_students and _.all @model.get('enrollments'), (e) -> !e.sis_course_id json.canEditSections = not _.isEmpty @model.sectionEditableEnrollments() json.canLinkStudents = json.isObserver && !ENV.course.concluded json.canViewLoginIdColumn = ENV.permissions.manage_admin_users or ENV.permissions.manage_students diff --git a/app/views/jst/courses/roster/rosterUser.handlebars b/app/views/jst/courses/roster/rosterUser.handlebars index 8bc3c48a4508..5c88bbd00f79 100644 --- a/app/views/jst/courses/roster/rosterUser.handlebars +++ b/app/views/jst/courses/roster/rosterUser.handlebars @@ -49,10 +49,10 @@
  • {{#t "links.edit_sections"}}Edit Sections{{/t}}
  • {{/if}}
  • {{#t "links.user_details"}}User Details{{/t}}
  • - {{#unless sis_user_id }} + {{#if canRemoveStudents}}

  • {{#t "links.remove_from_course"}}Remove From Course{{/t}}
  • - {{/unless}} + {{/if}} {{/if}}