support :conditions option for create_index

postgres only

Change-Id: Idd69c0d43ec845461b10a44364c85c22e3595dc5
Reviewed-on: https://gerrit.instructure.com/14063
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
fix kaltura previews in full_files (fixes #11047)

Test plan:
  preview a media object in course or user files and make sure it plays

Change-Id: I44f0ae788f4b02cb5399945336ff0656fa428f56
Reviewed-on: https://gerrit.instructure.com/14076
Reviewed-by: Bryan Madsen <bryan@instructure.com>
Tested-by: Bryan Madsen <bryan@instructure.com>
spec: be more tolerant of plugins using cache

Change-Id: I24fa386546791b34d790034517118cbdde3e60e2
Reviewed-on: https://gerrit.instructure.com/14058
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
disable cross-shard conversations for the interim

to reduce confusion

test plan:
 * go to conversations on a shard other than your own
 * it should redirect back to the dashboard with a helpful message

Change-Id: I083a7fcb88bb3abdc40ad0bbf45c24ac6f237886
Reviewed-on: https://gerrit.instructure.com/14080
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
consistently display assignment mute icon. fixes #8385

previously, mute icon was not displaying inside of the gradebook
for assignments with titles wider than the assignment column. this
commit makes the mute icon visible by left-aligning it with the
assignment title (instead of right-aligning it).

test plan:
  * inside a course, create an assignment with a long name that
    overflows the assignment column in gradebook/gradebook2;
  * from either gradebook, mute the assignment;
  * in both gradebooks, verify that the mute icon is visible and
    is now left-aligned to the assignment title.

Change-Id: I0a12fdd05ab2bdd570f018d4fbf2ecdef913cb43
Reviewed-on: https://gerrit.instructure.com/14065
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
load tinychat over https. fixes #10470

use our own tinychat embed script to ensure it is loaded
over https instead of http. this allows it to load properly
in chrome and other browsers that restrict non-https content
during an https request.

test plan:
  * load canvas over https;
  * in chrome, navigate to a course chat page and verify that
    tinychat loads without any errors.

Change-Id: I119b218ad03d91c39405529cf1604068514b07ee
Reviewed-on: https://gerrit.instructure.com/13899
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
plugins initializing before initializers strikes again!

fixes #11033

Change-Id: I43a594249a6d22ed50e1c11c2b01d18b8afc80c3
Reviewed-on: https://gerrit.instructure.com/14059
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
spec: role recontexting and file naming refactor

  test:
   1. refactored attribute(class) with have_class
   2. contexted no context specs
   3. split out teachers and student specific specs
   4. refactored have_attribute
   5. refactored eql => ==

Change-Id: I592a063eece8097d5672c164f82a7b1a0c3c8928
Reviewed-on: https://gerrit.instructure.com/13880
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Sorce <jake@instructure.com>
Email replies to locked topics should be ignored.

fixes #9594

test plan:
 - Configure Canvas to send emails to you.
 - Create a student account and set notifications for annoucements and discussions to "ASAP."
 - Create an annoucement and a discussion and make sure you get the notification emails.
 - Reply to the notification emails and see that the replies get posted as normal.
 - Lock the announcement and discussion.
 - Reply to the emails again and see the replies don't get posted.
 - See that you get an appropriate bounce message.

Change-Id: I4436c61a202d3285ee35a9f9002cefa0f18954fd
Reviewed-on: https://gerrit.instructure.com/13912
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
remove unused twitter tables and no-op jobs

test plan:
 * edit course settings, there should not be an error
 * copy a course, there should not be an error

Change-Id: I733bef83b69d9c513be801d3e4b25422bcd10ebd
Reviewed-on: https://gerrit.instructure.com/13832
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
correctly conclude observer enrollment

if an SIS update tried to conclude an observer of a student
who was already concluded, that observer enrollment ended up
duplicated with one concluded enrollment and one active.

Test Plan:
 * Create a student with an observer
 * In an sis update conclude the enrollments with the student's row first
   (you can look at the example in the added spec)
 * Both users should be concluded and only have one enrollment

closes #11050

Change-Id: Iaf63f005397f7b93403e0fd032335bf0a1f364d2
Reviewed-on: https://gerrit.instructure.com/14094
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fix improper data validation on profile link url, refs #10876

take off 255 character limit on the url link field, we migrated
the database to handle strings longer than 255 characters so this
limit is wrong

test plan:
  1. login as a admin and go to the default account
  2. click 'Settings on the left hand nav
  3. scroll down and click 'Enable Profiles' checkbox
  4. scroll up to the top and click on the user name link
  5. click 'Edit Profile'
  6. try to add a new link with a title that is longer than 255 characters
  7. try to add a url that is longer than 255 characters
  8. the title should not let you go over 255 characters and the url
     should be able to go over 255 characters without a DB error

Change-Id: Ia11803c14f175239be75e61f54ca2fb4deb65edc
Reviewed-on: https://gerrit.instructure.com/14098
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
speedgrader: show spinner while creating crocodoc viewing session

Test plan:
  * open a crocodocable submission in speedgrader
  * be comforted by the delightful dance of a spinner while waiting for
    your document to be displayed

Change-Id: I426b74f1f015da0a7a22c0e5beec4349010443bc
Reviewed-on: https://gerrit.instructure.com/14040
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
add data validation to new folder creation, fixes #10906

test plan:
  1. login as a teacher
  2. go to a course
  3. click on files on the left nav
  4. click 'Add Folder'
  5. try to give it a name over 255 characters
  6. text stops at 255 characters, press enter to add
     the folder
  7. folder is saved with no DB error

Change-Id: I1da8595350b3d0c6f23e3052e514bcb55446f141
Reviewed-on: https://gerrit.instructure.com/13982
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jake Sorce <jake@instructure.com>
spec: fix intermittent people failure

Change-Id: I20e86126cf4ff4111509b188b03048ea16009f03
Reviewed-on: https://gerrit.instructure.com/14108
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Shawn Meredith <shawn@instructure.com>
add users.bio to dropped columns list

Change-Id: Ib6a1eab07b638666d5df83f5b06f1c49a1450b92
Reviewed-on: https://gerrit.instructure.com/14109
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
don't count deleted sub-accounts. fixes #8427

test plan:
 * Create a sub-account (root>sub1)
 * Create a sub-account under the first sub-account (root>sub1>sub2)
 * Create a sub-account under the second sub-account (root>sub1>sub2>sub3)
 * Delete the third sub-account (root>sub1>sub2)
 * Verify that there is not a "1 Sub-Account" note under the second sub-account

Change-Id: Ib034df55e766497e07143f9b8ce3cb7b51c508f8
Reviewed-on: https://gerrit.instructure.com/14067
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
fix banner inception

don't include fixed bottom bar warnings on pages that have been loaded into
iframes and have set @body_class_no_headers.  currently these are only used in
test environments.

test plan:
- in a test environment, go to speedgrader to an assignment with submission
  previews
- you should have the "test environment" warning along the bottom of the page,
  but it should not be duplicated inside of the preview area.

Change-Id: I9a8c7162cd2480e5fe17e90079cce8ecd9ca721c
Reviewed-on: https://gerrit.instructure.com/14096
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
add new notification type for screen readers.

fixes #9254

add new flash message types - $.screenReaderFlashMessage and
$.screenReaderFlashError - that only display to users with
screen readers.

use these new types to display accessibility warning messages on
chat and conference pages.

test plan:
  * using a screen reader, navigate to the conferences and chat
    pages inside of a course and verify that a warning about
    inaccessible third-party content is read on page load.

Change-Id: I45086f63b6eefc31d05a77bf33092f8ae9796644
Reviewed-on: https://gerrit.instructure.com/13523
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
allow multiple saml auth configs and full aac api

An account can now have multiple SAML configurations, and
can set an auth discovery url.

The old AAC API has been deprecated and this adds a normal
resource API for AACs

Test Plan:
 * Test the api be doing lots of things
 * Create two saml configurations
 * Test the individual login urls for each (/login/{id}) and verify they work
 * Test that the new SAML AAC UI works.
 * Test that the SAML configuration in position 1 is used as the default

closes #10497

Change-Id: Ibe35fcf788d9506542b1079cc7420912a1e9d9a2
Reviewed-on: https://gerrit.instructure.com/14042
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>