filter params recursively in error reports

fixes CNVS-10607

test plan:
- specs should pass
- when an error does arrise on login (hard to reproduce), the user's password
  should be filtered in the corresponding error report.

Change-Id: I25145f38198599203d916cd90708a784152d5f2a
Reviewed-on: https://gerrit.instructure.com/29290
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
rescue on attachment filename matching

URI.unescape and downcase are very unpredictable

fixes #CNVS-10762

Change-Id: I40c08257133498069139c9339692d32c4829f971
Reviewed-on: https://gerrit.instructure.com/29491
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
set notifications and settings as unsharded for rails 3

Change-Id: Ibbb21e3cf61b55a02af924dddb5d9836efdb257a
Reviewed-on: https://gerrit.instructure.com/29428
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
update relative_id_for to switchman style

Change-Id: I0bc5b04d6210c90aa607e23714e7e78a2964e8ff
Reviewed-on: https://gerrit.instructure.com/29517
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
fixes for conversations and sharding for rails 3

Change-Id: I86bde6da2cc006e92c00113dccb95f100c2dadee
Reviewed-on: https://gerrit.instructure.com/29393
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
allow displaing total grade as points for students

fixes CNVS-9874

when teacher choses to show total grade as points in GB2, a setting is saved
student grade summary page shows the total grade in same format
if assignment groups are weighted, grade is displayed as a percentage again

test plan:

  - new addition:
    - go to a course where GB2 is displaying totals as points BUT has no DB setting about show_point_totals
      (ask mike if you need help getting to this state)
    - as a student look at the grade summary page, total should be a percent
    - as a teacher in that class, go to GB2 and wait for 5 seconds
    - as that same student, go back to grade summary, total should be points now

  - as a teacher, change total grade to show as points in GB2
    - when you return to the GB, even from a new browser, this should be the same
    - in GB, tooltip should show points if cell shows percent, and visa vera
    - as a student in that class, you should see your total grade as points
      - grade tooltip should show points if cell shows percent, and visa vera
  - switch to weighted assignment groups
    - total grade as a teacher and student should switch back to percent
  - switch back to non-weighted
    - total grade should stay a percent until explicitly changed back to points

  - GB2 weighting and points/percent switching should have no unintended effects on the GB
  - student grade summary page should display everything in a consistent manner

Change-Id: Id0c4f496576c226eb7000d6684a37faf0b439359
Reviewed-on: https://gerrit.instructure.com/28780
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Mike Nomitch <mnomitch@instructure.com>
update cache_store initialization

refs CNVS-9546

for rails2, when using multiple environment-conditioned caches,
middleware must be inserted for each cache. so we need to instantiate
them and manage the middleware at boot. adjust accordingly

for rails3, we're using switchman and switchman has been updated to
manage this for us. we just need to give it the full cache configuration
map up front.

also changes the default for Canvas.cache_store_config's second
parameter to true, extracting the nil_is_nil=false behavior into the
fallback value for Rails.env in the new Canvas.cache_stores method. the
only remaining callers of this method are in some plugins which passed
an explicit true value for that parameter. once those plugins are
updated to access Canvas.cache_stores directly,
Canvas.cache_store_config will be removed.

Change-Id: I80eb09679303f2778a6ddc9ab476e695a6754465
Reviewed-on: https://gerrit.instructure.com/28441
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
allow circular dependencies in polymorphic_type_override

test plan:
  * run specs

Change-Id: Ie6f8be9c23c76ff2ab499641c65ba5425e4a453b
Reviewed-on: https://gerrit.instructure.com/29563
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Product-Review: Raphael Weiner <rweiner@pivotallabs.com>
QA-Review: Raphael Weiner <rweiner@pivotallabs.com>
fix MediaObject.add_media_files failures

don't look for sis pseudonyms when processing media files that belong
to things that don't have root accounts

Change-Id: Ia77a9eb2755d11475fba9391a8e27a6126c669c4
Reviewed-on: https://gerrit.instructure.com/27942
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
fix PageView migrator spec on mysql

 refs CNVS-7032

 * be prepared for timestamps that are already timestamps
 * handle no sub-second precision in our batch size assumption

Change-Id: Ic286750a275acec28c60feb145733e9e41cbc12a
Reviewed-on: https://gerrit.instructure.com/29499
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
apply "must read" requirements for each wiki page content tag

test plan:
 - put the same wiki page in two or more modules
 - have a "must view" requirement in each
 - make sure that, when a student views the page,
   all "must view" requirements for the page
   (in each module) are fulfilled

fixes CNVS-10550

Change-Id: I8ca23f64652271cac3498907b320f1afe228855b
Reviewed-on: https://gerrit.instructure.com/29531
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
list enrollment term api

fixes CNVS-10433

test-plan:
  - fetch /api/v1/accounts/<root account id>/terms
  - generate api docs and terms should render

Change-Id: Ic63197fccc21198922c8d737ff6fe6920f2e1d7c
Reviewed-on: https://gerrit.instructure.com/21610
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
add settings to switchman shards

Change-Id: Ibb8660559a0451aa01f793d79df58e25860862e0
Reviewed-on: https://gerrit.instructure.com/29585
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
spec: add to_datetime to SortFirst and SortLast

rails3

Change-Id: I3f61de3f8302b8ab3d11ef41590ee20b5b602b19
Reviewed-on: https://gerrit.instructure.com/29560
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
Product-Review: Ryan Florence <ryanf@instructure.com>
QA-Review: Ryan Florence <ryanf@instructure.com>
fix mysql build student report

test plan
 - specs should pass

Change-Id: Ibf7d19287de12f5802a200485951e92c62694f68
Reviewed-on: https://gerrit.instructure.com/29602
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
ignore all .bundle folders and Gemfile.lock

Change-Id: Ib78461b98a15d81812d04bcdbc7e2dbd0320b979
Reviewed-on: https://gerrit.instructure.com/29508
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Raphael Weiner <rweiner@pivotallabs.com>
Product-Review: Raphael Weiner <rweiner@pivotallabs.com>
QA-Review: Raphael Weiner <rweiner@pivotallabs.com>
use test.sh scripts for all gems

Change-Id: If97bbe476b8bf747e3b83bb7bf22783e2508da69
Reviewed-on: https://gerrit.instructure.com/29507
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stephan Hagemann <stephan@pivotallabs.com>
Product-Review: Stephan Hagemann <stephan@pivotallabs.com>
QA-Review: Stephan Hagemann <stephan@pivotallabs.com>
gracefully handle absence of cache_store.yml

test-plan:

 - don't have a config/cache_store.yml
 - try and boot canvas

Change-Id: I58ceca7bc3b618421e7d66987bbd18b2646babf4
Reviewed-on: https://gerrit.instructure.com/29582
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
converts assignments/_assignments_list_content js_block into js_bundle

test plan:
* regression test assignments

Change-Id: Idc5aa62d5369acc215112a384a54dfa04fb22615
Reviewed-on: https://gerrit.instructure.com/29176
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
converts assignments/_wizard_box js_block into js_bundle

test plan:
* regression test assignments wizard box

Change-Id: I333aa09367510bbd555bdcbdef084097df0eb6f1
Reviewed-on: https://gerrit.instructure.com/29171
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>