test plan:
* create a custom course role for an account
* create a sub-account
* enable the permission on the parent account, but
disable it on the sub-account
* create a course for the sub account
* enroll a user in the course using the custom role
* check the disabled permission for the user
* it should be disabled
closes #CNVS-25230
Change-Id: I39c3d65f74c73ae3ae4d6457c072cb2fbab35512
Reviewed-on: https://gerrit.instructure.com/73225
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* from the course settings, click "Copy this Course"
* on the course copy form, enter a start date
* enter an end date before the start date
* it should prevent the form from being submitted
and pop up an error
* changing the date to a valid one should work
closes #CNVS-26590
Change-Id: I98ac199c946c432d4ab1ea1e19a182d6955d20de
Reviewed-on: https://gerrit.instructure.com/73356
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* create a user with notification preferences
for "Membership Update" (under Groups) set to ASAP
* enroll the user in a course as a teacher enrollment
but reject the invitation
* enroll a student in the course and accept the invitation
* it should not send a message to the teacher who rejected
closes #CNVS-27533
Change-Id: I7d65c697b80378642b934610bfebce9c3ef89f17
Reviewed-on: https://gerrit.instructure.com/73228
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* try to upload a file greater than 50MB for a quiz
file upload question submission
* it should be successful
closes #CNVS-27148
Change-Id: Id92ac58a31d0ab38b311fc5227dbd139bb1e35ad
Reviewed-on: https://gerrit.instructure.com/73050
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* import the package referenced in the ticket
* it should not create any module items linked to announcements
closes #CNVS-27609
Change-Id: I86a8c7ec2efbc766e7f82dac46a449faf0989788
Reviewed-on: https://gerrit.instructure.com/73412
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes CNVS-27335
test plan
- users with just manage sis should not be able
to import sis data.
- users with just import sis permission should be
able to import sis data
- import sis permissions should only exist on
root_accounts
- manage sis users should still see the sis tab
on the account, but should not see any import
options
Change-Id: If965796a4b14630d6674f221805eff7d56da439f
Reviewed-on: https://gerrit.instructure.com/72411
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
refs CNVS-27581
this ensures we have one correlation ID for a request coming
through the ecosystem rather than a seperate ID for each request
at each service. Each request id must be signed to make sure
others can't just submit whatever they want.
TEST PLAN:
1) make an API request and provide the header 'X-Request-Context-Id'
2) make sure to include the X-Request-Context-Signature header, which
should have the value of the sha512 signature with the shared
secret for the services ecosystem
2) the logs should show your provided value as the context Id for that
canvas request
Change-Id: I610fbe8c4df355d43c05360670f80971d1459644
Reviewed-on: https://gerrit.instructure.com/73166
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
Fixes: CNVS-27418
Test plan:
- With the new UI on, as an admin, go to your user
account settings, and turn on High Contrast UI.
- Go to Theme Editor, and you should see the
following alert at the top of the screen:
http://screencast.com/t/shbAlU6H
- The link should take you to your account settings
page
- Turn off High Contrast UI, go back into Theme
Editor, and the alert should no longer show.
Change-Id: I1686bd5e45405195cb511bd8a479e34975fec0b7
Reviewed-on: https://gerrit.instructure.com/73165
Tested-by: Jenkins
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
closes CNVS-27597
We need to not slam consul for rarely changing data.
the '#find' method still gets the value from consul everytime.
Cache can be infinite or with timeout.
TEST PLAN:
1) have some data in consul for what the signing secret is for canvas
2) Make sure to query it (Canvas::Security::ServicesJwt.signing_secret)
3) change the consul data
4) query it again, it should not have updated
5) send a SIGHUP
6) query it again, it should have changed
Change-Id: I5b923b8e44ab90692e87969c494a7c65fafcad72
Reviewed-on: https://gerrit.instructure.com/73198
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins
Reviewed-by: David Adams <dadams@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Fixes CNVS-27413
Test plan:
- Create an assignment
- Create more than 10 users
- Submit the assignment as each user
- As a teacher, verify that the actual number of assignments that
were submitted shows up next to the assignment in the to-do list
Change-Id: I3720ac1e24abbc78bf56f384dfd19400f51f1409
Reviewed-on: https://gerrit.instructure.com/72990
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Allison Weiss <allison@instructure.com>
these specs fail ~85% of the time (though they usually pass reruns).
switch to :once instead since it confers the same speed benefits without
the following drawbacks of :all hooks:
1. things like cached special accounts may be invalid (usually the failure
here)
2. you have to manually clean up afterward, otherwise later specs can break
test plan:
1. jenkins should pass with none of these failing
2. `rspec spec/selenium/gradebook_student_spec.rb:140:255 --order defined`
should now pass locally
Change-Id: Ie21c97a4ce54abe705db43b7fea6dc18b49ae63f
Reviewed-on: https://gerrit.instructure.com/73383
Reviewed-by: Michael Hargiss <mhargiss@instructure.com>
Tested-by: Jenkins
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
refs #CNVS-27475
Change-Id: I241b4c5454fb9d1e306a5a6281dca6f1da439f7c
Reviewed-on: https://gerrit.instructure.com/73357
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
different runners on the same node could stomp on each other's
unzipped_file_path
also remove @export_folder, since it wasn't used
Change-Id: Ifcc75e8e1da7e568c457e8c0d1fc8fec0f1f6877
Reviewed-on: https://gerrit.instructure.com/73353
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>
closes CNVS-24740
test plan:
- manually inspect the SQS payload and ensure that the request_id is
included
Change-Id: Ie694d77e8093b77fd96a09227aa1bc9e11156f9c
Reviewed-on: https://gerrit.instructure.com/72791
Tested-by: Jenkins
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Gentry Beckmann <gbeckmann@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Fixes: CNVS-26813
Note: This is really old code, with all inline
styles; so to fix the bug I had to create a new
stylesheet for this view and move the affected
inline styles to classes. This feature needs a
whole bunch of additional updating; but for now,
these changes address the problem in the ticket and
overall make the page a little nicer to use in the
new UI.
Also, this page iframes Canvas inside itself, so
I created a new environment variable that we can
use to generate a class for the body; so we can
style only the Canvas that is inside the iframe.
Test plan:
- Turn on the new UI
- As a student or teacher, create or go to an
assignment submission and click on the
Submission Details link in the top-right box.
- For the new UI, the changes in this commit are
as follows:
Before: http://screencast.com/t/LoPnF8F59
After: http://screencast.com/t/5aWTI7o9s
- For legacy UI, the changes in this commit are
minimal:
http://screencast.com/t/gIXRi3xA7aUP
Change-Id: I95ff8586c479b1d8ac049fb3f501b3ef8e961eba
Reviewed-on: https://gerrit.instructure.com/72075
Tested-by: Jenkins
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
for an account csv sis import, the file must include the
parent_account_id column even if all the values in it are blank, so that
we can differentiate the file from a group import.
fixes CNVS-16875
test plan:
- check sis csv docs
Change-Id: I5c897a249886e8234a530ce9ea8e3b3dec88c093
Reviewed-on: https://gerrit.instructure.com/73205
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
test plan:
- create an assignment with a long name that requires grading
- as a student, submit to the assignment
- ensure the teacher's todo item aligns the icon and
assignment name properly (see screenshots in the ticket)
fixes CNVS-26349
Change-Id: I9d9ef37699958622ff1cabfdcd979f3065500d08
Reviewed-on: https://gerrit.instructure.com/72955
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
when setting up sharding beforehand via sql import (versus migrations), the
roles table won't be populated in the other shards. additionally the initial
call to truncate_all_tables generally won't populate it, since the shards
table will be empty.
Change-Id: Ia0565164da0bf3d904a1c45385e97ac564c0810e
Reviewed-on: https://gerrit.instructure.com/73231
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>
if we get the same failure ten times in a row, bail the run. this should
help when a runner or node gets in a bad state in test-queue land, as the
other runners will pick up the slack
(though if all nodes are screwed, then test-queue will hang and the build
will time out, but that's still just a failure so ¯\_(ツ)_/¯ ... we can
revisit that behavior in a change to test-queue)
test plan:
1. see patchset 1 test plan and test build
Change-Id: Idfd86b8b9537c202cc32d60ff36d15abc5aded33
Reviewed-on: https://gerrit.instructure.com/72863
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>
test plan:
* create a module with two required items
* as a student, fulfill one of the requirements
* change the module so the completed item
requires a different action (e.g. change a
"Must view" assignment requirement to "Must submit")
* on the modules page, as a student, it should not
mark the former requirement as completed
closes #CNVS-26337
Change-Id: I50af98e481d650a2a0163f6ab5438da261ab8526
Reviewed-on: https://gerrit.instructure.com/72999
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
closes CNVS-27212
Gives us the ability to turn on RCE integration
for one category of use case at a time rather than all
at once
TEST PLAN:
1) nothing uses the higher level feature flags yet
2) make sure you can enable and disable the new feature flags?
Change-Id: I187f2da931a1374ff0893000849a6dbef3332c0b
Reviewed-on: https://gerrit.instructure.com/73065
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
When exporting to a CSV when a student name beings with an equals, the
gradebook exporter will set the name to be a forumula that explicity
sets the cell to name. This will allow a teacher using Excel to be
safe from potential security issues caused by a student changing their
student name name to a function or macro.
This commit also contains a fix to an existing spec that didn't test
what it was intending to.
fixes CNVS-25317
test plan:
- Have a course and gradebook that has a student with the name of
=sum(A)
- Export the gradebook to a CSV.
- Open the CSV in a text file and note that the name looks like
="=sum(A)"
- Open the CSV in excel and note the student name is properly
displayed in the grid as =sum(A)
Change-Id: I1ff77f1c49f93d997cb5dcde8ad0d2239edbc4c7
Reviewed-on: https://gerrit.instructure.com/72914
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
closes #CNVS-27475
Change-Id: I68bbab410a0c2dbb867edceb424496155319f290
Reviewed-on: https://gerrit.instructure.com/73227
Reviewed-by: Alex Boyd <aboyd@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes CNVS-26359
- Add Enrollment.not_yet_started.
- Update `to` blocks in Assignment's set_broadcast_policy declarations
to exclude users for whom their enrollment in the course has not
started.
test plan:
Configurations:
- A student belonging to a course section that starts in the future.
- A course that is published but that starts in the future.
- A course without an explicit start date, but belonging to a term that
starts in the future.
The following should be performed with all of the above configurations:
- Add an assignment to the course.
- Observe that the student does not receive a notification.
- Make a change to an assignment that is at least 30 minutes old, check
the "Notify users that this content has changed" checkbox, and save
the assignment.
- Observe that the student does not receive a notification.
- Make a change to the due dates on an assignment that is more than 3
hours old, check the "Notify users that this content has changed"
checkbox, and save the assignment.
- Observe that the student does not receive a notification.
- Unmute a muted assignment.
- Observe that the student does not receive a notification.
Also confirm that, given a course that has already started, all
assignment-related notifications are sent as expected.
Change-Id: I5bff23ff35e72081b2c1a3127dfb42a71d3fa25d
Reviewed-on: https://gerrit.instructure.com/71217
Tested-by: Jenkins
Reviewed-by: Matt Berns <mberns@instructure.com>
Reviewed-by: Sterling Cobb <sterling@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Jason Sparks <jsparks@instructure.com>
Fix the edit for a multi-section course where an assignment
override is made for a student in another section than the
teacher who is editing the assignment.
fixes CNVS-23944
Test Plan:
-Create a course with two sections.
-Add a teacher that can only grade their section.
-Create a quiz or assignment
-Override with only student(s) that the sub-teacher cant see
-Masquerade as the teacher and go attempt to edit the assignment.
-Make a change
-Click save and see that it now saves..
-Repeat with override with mix of students that the sub-teacher
can/cannot see
-Repeat with various combos not stated that you can think of
-Make sure to also test that groups and section overrides still work
Change-Id: I360368bf3340a15452da5e60e734817841df139c
Reviewed-on: https://gerrit.instructure.com/71526
Tested-by: Jenkins
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Jason Sparks <jsparks@instructure.com>
fixes CNVS-26295
test plan:
- enable Turnitin on an account
(gollum.instructure.com/OtherServiceTestAccounts#Turnitin)
- toggle an assignment to have Turnitin enabled and choose
a submission type.
- the assignment show page should show Turnitin as active
- make the assignment "no submission"
- the assignment show page should not show Turnitin
as active
- re-select a submission type for the assignment so
the Turnitin text appears again
- disable Turnitin on the account
- the assignment show page should not show Turnitin
as active
Change-Id: Iac174e52831ddc5e565acfd3d294189f6f4cefd1
Reviewed-on: https://gerrit.instructure.com/71626
Reviewed-by: John Corrigan <jcorrigan@instructure.com>
Tested-by: Jenkins
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Jason Sparks <jsparks@instructure.com>
closes CNVS-27576
TEST PLAN:
1) JWT with nbf in the future should get rejected (tests prove this)
Change-Id: I55f5bde030a6be4caee323a14988e3fbb49cfa95
Reviewed-on: https://gerrit.instructure.com/73132
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
fixes PLAT-1335
test plan:
install the test tool with a 'collaboration' placement
the tool should show up as a collaboration type
you should be able to create a collaboration using content-item
Change-Id: Icaeaec480e37babd37dfe5443490560644c22f99
Reviewed-on: https://gerrit.instructure.com/72504
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
Refs: CNVS-26581
test plan:
- setting the stage: turnitin must be set-up and turned on for
this ticket
- as a teacher that has an assignment with turnitin enabled
view a submission inside of speedgrader in order to see the
turnitin similarity score on the right sidebar
(sample: http://screencast.com/t/Gw3BLpHqgd)
Change-Id: Ied361fa572df3e1335f34430abcc7afcdced91a0
Reviewed-on: https://gerrit.instructure.com/72978
Tested-by: Jenkins
Reviewed-by: Chris Hart <chart@instructure.com>
Product-Review: Chris Hart <chart@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Refs: CNVS-26581
test plan:
- as a user with the old and/or new ui
- navigate to a course home page
- within the right side bar, the View Calendar text has been
increased from 10px to 12px/0.75rem
- old ui: http://screencast.com/t/ryvqHe3rmmf
- new ui: http://screencast.com/t/NIcRkT5uxD0V
Change-Id: I4bc4a51cfeada7676790d137d35d6595216bc50c
Reviewed-on: https://gerrit.instructure.com/72917
Tested-by: Jenkins
Reviewed-by: Chris Hart <chart@instructure.com>
Product-Review: Chris Hart <chart@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
If assignments are due after 11:30pm, their events on the week
calendar are displayed in the 11:30pm slot to ensure their
titles are visible. However, they get the default length of
one hour, which wraps around to the next day on the week calendar.
Trim these to 30 minutes so they don't do that.
Test plan:
* assignments due after 11:00pm should not wrap around to the
next day on the week calendar
fixes CNVS-24213
Change-Id: Ife77154ef53fb964ac1c22fcf1ef828da008e7ba
Reviewed-on: https://gerrit.instructure.com/72951
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Fixes: CNVS-26375
Note: to fix this bug, it was agreed by product
and engineering that we should remove the footer
in the new UI from all pages except for the
dashboard.
Test plan:
- Check legacy UI: there should be no change. The
Canvas footer should appear on all pages it
currently does.
- Turn on the new UI. The footer should now only
appear on the dashboard/home page.
Change-Id: I9c070eb3c0fb2b26ebbf990c9fcd05dc5f5baa29
Reviewed-on: https://gerrit.instructure.com/72806
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
Tested-by: Jenkins
QA-Review: Myller de Araujo <myller@instructure.com>
test plan:
- as a custom admin that lacks "Manage Courses" permission,
if you try to crosslist a course section into another course
that you are not enrolled in, you should see a
"Course not authorized for crosslisting" message
instead of a page error
fixes CNVS-25588
Change-Id: I7f34fb107a85a49fe3720e307e10a77b9d409d26
Reviewed-on: https://gerrit.instructure.com/73056
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
but make sure we have default roles everywhere. this will allow us to use
schema snapshots (w/ no data) for all the shards in CI-land
refs SD-857
Change-Id: I7f1ca2253af86f71a9bef243b6bb51f94a927aef
Reviewed-on: https://gerrit.instructure.com/73143
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
refs CNVS-27480
test plan
-specs should pass
Change-Id: Id9e5376269c86519febbbf084ddddc9c5ee2ef1a
Reviewed-on: https://gerrit.instructure.com/73137
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
test plan: sanity check the following pages to ensure
they load properly:
- account index (/accounts/X)
- account statistics (/accounts/X/statistics)
- courses index (/courses/X)
- courses people page (/courses/X/users)
- student profile page (courses/X/users/Y)
test this with "Enable Profiles" in account settings
on and off.
This commit enables the analytics plugin to add links in all
these places without manipulating the DOM after the page renders.
(Not all these places have analytics links now. They used to,
before page changes broke the DOM injection that this commit
prepares us to get rid of...)
refs CNVS-6298
Change-Id: Ib252655220b017c2f60c9f4aa08d65a516a82f83
Reviewed-on: https://gerrit.instructure.com/72285
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>