flag=none
Test plan
- Run your specs over (UTC) midnight
and never see failures again :)
Change-Id: I254c28a5bfef24a4c4d66796ac58ce0118618f6d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/330176
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Eric Saupe <eric.saupe@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Eric Saupe <eric.saupe@instructure.com>
Product-Review: Ravi Koll <ravi.koll@instructure.com>
Change-Id: Ie8b0e0cb6730abd60e89836b7777261608c4ff1c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335848
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
why:
* LTI 1.1 tools launching from this placement receive the
`ext_lti_student_id` launch parameter that corresponds to
the student from which the tool was launched
* this provides parity for LTI 1.3 tools to receive a similar parameter,
`https://www.instructure.com/lti_student_id`
closes INTEROP-8058
flag=none
test plan:
* install a 1.3 tool with the student_context_card placement enabled
* Course -> People -> click on a Student
* a card will slide out from the right side, and will have a button
to launch the 1.3 tool
* launch the tool
* scroll to the bottom of the decoded id_token
* the lti_student_id custom claim should be present and
match the id of the student you clicked on
* bonus:
* change the id in the URL to a non-student - it should fail
* change the id to a non-number like SQL injection - it should fail
* remove the `&student_id=1` query param entirely - the launch should
succeed, but not include the lti_student_id claim
* extra bonus:
* test this with a 1.1 tool to confirm it's still working as intended
Change-Id: Ie3aeebb549c14b978fe84e28748275478685fba4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335539
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Paul Gray <paul.gray@instructure.com>
QA-Review: Paul Gray <paul.gray@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
closes LF-1099
flag=none
test plan:
-find an RCE, toggle to the html editor
-insert a source tag with width + height attributes
-toggle to normal editor and back to html editor
>confirm the width/height attributes weren't stripped
-save the page
-re-edit your content again
>confirm the width/height weren't stripped by the server
Change-Id: Iffc814b1a12479971ed00bda98b776a5c3a5b6de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335334
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob DeWar <jacob.dewar@instructure.com>
QA-Review: Jacob DeWar <jacob.dewar@instructure.com>
Product-Review: Jake Oeding <jake.oeding@instructure.com>
[skip-stages=Flakey]
[skip-crystalball]
99% of fixes are Performance/StringIdentifierArgument, but one or
two instances of each of Performance/Count, Performance/MapCompact,
Rails/Pluck in safe navigation chains
Change-Id: Ibd2292fb9e7c1e9162068021073c3c0f4b0d65df
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335489
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
why:
* Canvas Community request for Hackweek
closes INTEROP-8355
flag=none
test plan:
* go to Account > Settings > Reports
and run the LTI report
* it should download a CSV file
* (if this fails for whatever reason, go to a rails console):
```
account_report = AccountReport.last
LtiReports.new(account_report).lti_report
Attachment.last.authenticated_s3_url
```
* download the CSV file from that URL
* the CSV file should have a tool_id column in it
Change-Id: Ia6aa5b68b99175b5c7999d339a3e483bf5922f1a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335167
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Tucker Mcknight <tmcknight@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Alexis Nast <alexis.nast@instructure.com>
Change-Id: I4550b122d7db5527fc209384fd6d7b09654685da
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/334932
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
flag=discussion_checkpoints
closes VICE-3941
test plan:
- Specs pass.
- Cursory testing of everything related to assignments
across Canvas LMS.
- Create an assignment, old quiz, new quiz and graded discussion
assigned to multiple students and ensure each can be submitted
to by the assigned students.
- Sanity check that the submissions can be viewed and graded
within Speedgrader.
Change-Id: Ib31b8e604040b094381571b854ea3429ac10622a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/334305
Tested-by: Jacob Burroughs <jburroughs@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Reviewed-by: Omar Soto-Fortuño <omar.soto@instructure.com>
Reviewed-by: Aaron Suggs <aaron.suggs@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
QA-Review: Kai Bjorkman <kbjorkman@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
closes OUT-5977
flag=none
Test plan:
- Go to Account -> Settings -> Reports, select
Outcome Results report and click Configure
- In the Configure Report dialog click on the Term dropdown
and verify that it does not have "All Terms" option
Change-Id: Ie8a1a0186257742f0d13ff1ec3e8d2ed9b38994f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333556
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Angela Gomba <angela.gomba@instructure.com>
QA-Review: Angela Gomba <angela.gomba@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
refs LF-1026
flag = none
Test plan: automated
Change-Id: I210c745c442114117eaebf4862d235f26c4b8827
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333881
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
Build-Review: James Butters <jbutters@instructure.com>
Change-Id: I00627c360752ffffbcc34ef785d3fa7d406cc547
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333461
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: I2b9217b48828b2b4434554aab1b15ef5bd1fddbe
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333456
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: I8db5d5578bd6a4dc1757bb953cd9163636c64f88
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333454
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: I72ad99bc195e8f584080039d26299ff98eaa4e91
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333453
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: Id10694ca00ab9e2a9991258d0ca7072861174b4c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333450
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: Icccd60ca6515cdfc0c49ec5c6db0a8732a3d6ce1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333447
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: I07345cb76a8fc87b8c726e2b1555e0fc4e4883f5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333462
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: I4735e9625d7118d8ac6244e8a83d1292864c0a56
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333455
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
When you use google OAuth2 to authenticate your google user
you get an access_token and a refresh_token.
The access_token expires after 1 hour. After that
the client should automatically use the refresh_token to
get a new access_token
However the refresh_token was not being used to fetch a new
access token and the drive.get_about would fail and require
the user to re-authenticate after an hour.
This change now runs the force_token_update method
to run to make sure that the token is updated using
the refresh_token if the token is expired
closes VICE-3975
flag=none
Collaboration local setup
1. enable the google drive plugin
1a. http://localhost:3000/plugins
2. follow the local instruction to set up Google Beta
2a https://instructure.atlassian.net/wiki/spaces/CE/pages/49643728/OtherServiceTestAccounts#OtherServiceTestAccounts-Google
2b. These instructions are a bit outdated. But good enough
Test Plan
1. Have local google drive setup
2. Open a course collaboration
3. Authenticate your google account
4. Check the expiration of the access token
4a. https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=
5. When the token is expired open the collaboration
5a. By default, the token will expire in 1 hour
6. Verify that when you refresh or reopen the collab
page that you don't need to re-authenticate to see
the document
Change-Id: Ife6c3a232f6f17653dcd1c523c625a1382c41e50
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/333317
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
and actually enforce the linter (by setting a cutoff date for old migrations)
Change-Id: I50001b479e24b30714c37c331515b186bc089468
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/332721
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Migration-Review: Cody Cutrer <cody@instructure.com>