bump ruby-saml-mod to 0.1.29

refs OPS-170

Change-Id: Iec3f9064b40b12fbf801cc80e5052efa1a018f6f
Reviewed-on: https://gerrit.instructure.com/36602
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Paul Hinze <paulh@instructure.com>
QA-Review: Paul Hinze <paulh@instructure.com>
increase permissions performance

fixes: CNVS-11425

This is a performance refactor of the permissions.  The
biggest change is the caching.  The cache key is now based
on the right so each right will be cached by itself.  The
goal is to reduce places where we implement caching for
permissions and let adheres_to_policy handle it.

Another commit is coming to clean up calls to the new
methods created here.  g/34280

Test Plan:
  - Make sure permissions all work still.
  - Make masquerading still works with permissions.
  - Make sure switing views such as "student view" for a
    course.

Change-Id: I4a30b0aba394cea24c3b60167fc1369a2584f5a4
Reviewed-on: https://gerrit.instructure.com/34278
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
spec: fix content_migrations_spec rails 3 stability

Change-Id: Idfdde185ead6c615867582ad45aa44b7aa9c87cc
Reviewed-on: https://gerrit.instructure.com/36630
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Shawn Meredith <shawn@instructure.com>
Reviewed-by: Bryan Madsen <bryan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
conversations: fix auto-linking of www. in messages

fixes CNVS-2630

test plan:
  * open conversations
  * send a message containing a URL with no protocol
      starting with www.
  * confirm that the URL becomes a link which works correctly

Change-Id: I028e4eb386eed3307d10fc60884f0de008f2601c
Reviewed-on: https://gerrit.instructure.com/36444
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Drew Bowman <dbowman@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Braden Anderson <braden@instructure.com>
student learning mastery: afford clicks on groups

test plan:
  * open student learning mastery view
  * hover over an outcome group
  * verify that you want to click it

Change-Id: I3273167f7bc621b30a067184a849c6b5baf47af5
Reviewed-on: https://gerrit.instructure.com/36562
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Drew Bowman <dbowman@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Braden Anderson <braden@instructure.com>
swagger UI: handle arrays in Rails format

Arrays in Swagger UI are not being sent in Rails format, i.e. they are not given "[]" suffix. Comma-separated values in Swagger UI should work as arrays.

Test Plan:
- create 2 new courses (let's say with IDs 12 and 13)
- go to Courses / Update Courses in Canvas Live API (swagger UI)
- publish 2 or more courses, e.g.
    account_id: 1
    course_ids: 12, 13
    event: offer
- both courses should now be "published"
- (any other array-type things in the API should also work too)

Fixes SIS-330

Change-Id: I867feaa93a98546426b6a6ff40c11ce56dc43b7a
Reviewed-on: https://gerrit.instructure.com/36575
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Tyler Pickett <tpickett+gerrit@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Eric Adams <eadams@instructure.com>
add concurrently to recent add_index migration

Change-Id: If3cd851f83315a7bc7484fbd9948aebcd356eb2a
Reviewed-on: https://gerrit.instructure.com/36518
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
clean up permission calls for grants_rights?

refs: CNVS-11425

Change-Id: Ia0145e4b4d1da9e0f83a1845647ce203b3586057
Reviewed-on: https://gerrit.instructure.com/34280
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
clean up calls to cached_context_grants_right?

refs: CNVS-11425

Change-Id: I0487d98b839d33a339592d312ed8ed2134c4b62e
Reviewed-on: https://gerrit.instructure.com/35528
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
change text for "Choose Home Page" in new course wizard

fixes CNVS-12747

test plan:
 - create a new course in a draft-state-enabled account
 - click "Choose a Course Home Page" in the bottom panel
 - the description on the right should match the button in the
   right sidebar ("Choose Home Page" instead of "Set Course Layout")

Change-Id: I0178fe369c89e58923e25fc4249b480813e3ec3c
Reviewed-on: https://gerrit.instructure.com/36560
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
add caching for the quizzes#index api endpoint

fixes CNVS-13647

test plan:
  - make a GET request to the /api/v1/courses/{courseId}/quizzes endpoint
  - the first request will take a couple seconds
  - subsequent requests should be about 8x-10x as fast (around 200-250ms range)
  - try this out with different per_page options such as
    - api/v1/courses/1/quizzes?per_page=50
  - once again it will be slow the first request, but then all subsequent
    requests are faster

  - we want to make sure that changes are reflected correctly in the results.
    cache is invalidated if things change in the quizzes, and a good indication
    that the cache was invalidated was that we get that slow initial request
    again
  - things we should check to make sure they invalidate the cache (to make sure
    we don't see stale versions of things in the cached quiz results)
    - if the course id changes, we should get different results
    - if we edit details on a quiz
    - if we add a quiz
    - if we delete a quiz
    - if we send a jsonapi style request vs a non-jsonapi style request
    - if we add a search term to the params
      - api/v1/courses/1/quizzes?search_term=title
    - if we get a different page of the quiz results
      - api/v1/courses/1/quizzes?page=2
    - if we change the per_page value for returning quiz results
      - api/v1/courses/1/quizzes?per_page=50
    - if we visit the quiz results as a different user

  - make sure results for students and teachers are different and respect
    the correct permissions

Change-Id: I26f76ff9ace99ac168d3dd7a0cdaeb8550c8e655
Reviewed-on: https://gerrit.instructure.com/36596
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
conversations: load multiple pages of inbox on tall screens

fixes CNVS-12613

test plan:
  * open Canvas on a tall screen and a small zoom level
  * open Conversations
  * verify that a second page of conversations loads to fill the space
  * scroll down
  * verify that further pages load on demand

Change-Id: I9fc03e96a90b2abe9aa8a244050dd0edd797b973
Reviewed-on: https://gerrit.instructure.com/36401
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Braden Anderson <braden@instructure.com>
disable duplicate submission comments

fixes CNVS-11958

test plan:

- as an instructor
- go to a submission
- enter a comment
- enter a grade
- click save
- only one instance of the comment should appear

Change-Id: I11f5bdf56bafdbdb40b5cc4ea8bb1e6fc2aca001
Reviewed-on: https://gerrit.instructure.com/36466
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
fix documentation for enroll_me when creating a course via the api

fixes CNVS-13681

test plan:
  - generate the api documentation
  - view the documentation for creating a course
  - the enroll_me option should be just enroll_me instead of course[enroll_me]
  - confirm that creating a course via the endpoint works with the enroll_me
    param not being nested under the the course param

Change-Id: Ibe46869e6642b1eeb130899f1c35571ca26c6163
Reviewed-on: https://gerrit.instructure.com/36633
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
hide un-needed items on print

fixes CNVS-13659

test plan:

- visit new student learning mastery outcomes
- print the page
- the tabs, buttons, and course select should not show on the page

Change-Id: If438f4821ae05d95927189de4ae47518b5c46286
Reviewed-on: https://gerrit.instructure.com/36587
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Braden Anderson <braden@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Drew Bowman <dbowman@instructure.com>
Updated en-AU translation
Revert "set content container height to 100 percent"

This commit caused the browser vertical scrollbar to always be active, which in
places like gradebook2 could create a double scrollbar situation.

fixes CNVS-13668

This reverts commit bb454843879604c6c990102cb88595fcb091a865.

test plan:
- go to gradebook2 with enough students to scroll
- you should only have 1 scrollbar

Change-Id: I7e09b539db5752549cc61baacf97500e3ea980cd
Reviewed-on: https://gerrit.instructure.com/36648
Reviewed-by: Drew Bowman <dbowman@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
handle cross-domain account association check

fixes CNVS-13042

test-plan:
 - have multiple shards
 - have a course on shard A
 - have a two users on shard B
 - enroll one user in course as teacher
 - enroll other user in course as student
 - make a submission as the student, then grade that submission as the
   teacher
 - have an admin user on shard A view the grade change audit admin tool
 - search for events for the student user; should find them
 - repeat for the teacher (grader) user; should find them

Change-Id: Ia35aef892dae0825f721e37aafa0baed4a038f5a
Reviewed-on: https://gerrit.instructure.com/36570
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
fix incorrect published states for quizzes and assignments

test plan:
 0. BEFORE APPLYING THIS CHANGESET, reproduce the original bug:
   a) Have a course with draft state enabled
   b) Create a new module in the course, and do not publish it yet
   c) Add a new assignment to the course via the modules page
   d) Publish the module. This should publish the assignment.
      (refresh the modules page if you don't see that happen.)
   e) As a student, look for the assignment in the Assignments
      index page and the Syllabus page. You don't see it there.
      Because the modules page didn't publish it correctly.
 1. Apply the changeset and run migrations.
 2. (If production) wait for the datafix job to complete.
    It should complete almost immediately unless your job
    server is backed up. Look for the following in your log:
    DataFixup::FixIncorrectPublishedStatesOnQuizzesAndAssignments
 3. The assignment created in 0e should now be visible to
    students in the Assignments page and the Syllabus page.
 4. Repeat steps 0a-0e. This time, the published assignment
    should be visible to students in the assignments index
    and syllabus page right away.

fixes CNVS-13604

Change-Id: I657c90deb115a6d047abb81cbdabe014fd74778f
Reviewed-on: https://gerrit.instructure.com/36511
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
add sis_app_url Setting to PostGradesDialog

The URL to the SIS app where grades can be posted
for SIS integrations was accidentally hard-coded
in a previous patch set. This adds a Setting that
can be configured per Canvas installation.

Test Plan:
- Changing Setting.set('sis_app_url') to various
  values should make Post Grades work when it is
  set correctly and not work when it is not set
  correctly.

Fixes SIS-249

Change-Id: Id5d5659ace289771cf7adaa62429362039f1dc7a
Reviewed-on: https://gerrit.instructure.com/36360
Reviewed-by: Tyler Pickett <tpickett+gerrit@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Eric Adams <eadams@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>