Commit Graph

11541 Commits

Author SHA1 Message Date
Cody Cutrer a586d27665 fix cross-shard api lookups of non-ID columns
fixes CNVS-35954

just use a two-stage query where we translate to an ID first, so that
we can keep the final output as a relation object

Change-Id: Ia5529e5382ceb8f1104e09f8d0a0c04fef0d9efa
Reviewed-on: https://gerrit.instructure.com/110403
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2017-05-03 23:10:33 +00:00
Brad Horrocks c6df643425 Canvadocs hijack crocodoc sessions
Create new Canvadoc plugin setting to enable the hijacking of crocodoc
sessions.
When enabled crocodoc sessions will really go to canvadocs.
Canvadocs still needs to add support for migrating crocodocs from the
raw crocodoc data table.

Test Plan:

Enable the setting.
View an existing crocodoc
You should get an error :D
If you dont want an error I have A PS you can checkout
that returns a fake session id, which you can verify is being used
but it will still result in an error. but on the canvadocs side instead
of the canvas side.

Change-Id: Ie634e3f822ae3f9c453e9fefa70069d43c896d09
Reviewed-on: https://gerrit.instructure.com/108436
Tested-by: Jenkins
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Josh Orr <jgorr@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2017-05-03 22:11:01 +00:00
Jeremy Stanley 84a2b43d6c add a Setting to limit blueprint course history results
since these are not paginated.  in the future, we anticipate
potentially replacing this functionality with a course asset
audit stream, which will make it possible to paginate the
migration_details and unsynced_changes endpoints and lift
this limit (and also enable the unsynced change count to be
displayed on the blueprint sidebar as in the original design)

refs MC-177

Change-Id: Iba23680de98cc67739fb9fe0372483faec9d6cf7
Reviewed-on: https://gerrit.instructure.com/110178
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-03 21:47:08 +00:00
Simon Williams 458463bf18 upgrade to aws v4 s3 signatures
fixes CNVS-36040

test plan:
- try file uploads against an eu-central-1 and a us-east-1 s3 bucket as
well as local uploads
- try direct-to-s3 uploads (like from the files area), proxied uploads
(add a new file from the add module item dialog), and behind-the-scenes
uploads (like generating a course export or doing a sis import)
- make sure previously uploaded files continue to work

Change-Id: Ifd55cd72e017257e807f26a11a2f0870b7f68957
Reviewed-on: https://gerrit.instructure.com/110446
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2017-05-03 20:49:57 +00:00
Simon Williams 2370468fb0 clean up invalid communication channels
this was fixed in 6012a64ce7, but we need
to clean up old invalid channels to prevent issues with password reset

fixes CNVS-36145

test plan:
- munge the database to get an invalid email address in a communication
channel (doesn't match X@Y.Z)
- run the data fix
- it should delete the invalid channel

Change-Id: I62b72afa478538c4c0b615f555e587bfb4ab9f06
Reviewed-on: https://gerrit.instructure.com/109649
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
2017-05-03 20:49:18 +00:00
Jeremy Stanley 0b597e75c7 add user id to user sort clause
so we still have a deterministic sort for pagination when
multiple users have the same sortable name

fixes CNVS-36604

Change-Id: I75b5eaae782553a80a185660ddb4346dbe79f853
Reviewed-on: https://gerrit.instructure.com/110288
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-03 20:44:53 +00:00
Felix Milea-Ciobanu dec41b2fdc implement alert-based error handling
fixes MC-164

test plan:
- kind of hard to test because it relies on things in the backend
  blowing up..
- one way might be to open up the blueprint sidebar, kill the rails
  server, and click the sync button
- note that an alert appears at the top of the screen with a proper
  error message

Change-Id: I7a7debfe2252217bc73e79d4ae79b370900553c4
Reviewed-on: https://gerrit.instructure.com/109888
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Jenkins
Product-Review: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
2017-05-03 20:19:18 +00:00
August Thornton e664712732 remove white space for lti app url config form
fixes PLAT-2173

trim() is supported in all major browser versions

We currently add validation on the name and config URL input
fields before the user is allowed to submit the form. We also
flash an alert and stop the form from submitting if the provided
config URL endpoint doesn't resolve to a file path that contains
an XML description/markup of the basic launch link. We now remove
whitespace from all fields for all form types. Whitespace in this
context is all the whitespace characters (space, tab, no-break space, etc.)
and all the line terminator characters (LF, CR, etc.)

test plan:
• Navigate to Settings --> External Apps
• Select | + App | button
• Select the "By URL" Configuration Type
• Add leading or trailing whitespace to the following fields:
    • Consumer Key
    • Shared Secret
    • Config URL
• Submit the form with valid data
• Edit the added tool's config
• Verify no leading or trailing whitespace

Change-Id: I329871734dbb969dafef38b78bec49e044ea3607
Reviewed-on: https://gerrit.instructure.com/110268
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2017-05-03 20:12:18 +00:00
Ed Schiebel 3bc3e77402 Lock Files teacher view
adds lock/unlock to files.
To test, will need James' fix for the files api
https://gerrit.instructure.com/#/c/109231/

closes MC-139

test plan:
 setup: create master and minion courses.
 - in the master course, add a file and lock it,, migrate
 > expected: in the minion course it shows up as locked. the gear menu
 > only lets the user download
 - in the master course, add a folder and put a couple files in it,
   migrate
 > expected: in the minion course, the folder and files show up as
 > unlocked
 - in the master course, lock one of the files in the folder, migrate
 > expected: in the minion course, the folder is locked. the 1 file is
 > locked, the other isn't
 - in the master course, unlock the files in the folder, create a
   sub-folder, add a file there and lock it
 > expected: in the minion course, the top and sub-folders are locked
 - navigate to the master course's files
 - in devtools console, set ENV.COURSE_ID='xxx'
 - click on the lock to lock|unlock a file
 > expected: an alert is displayed at the top of the page
 - click the details button
 > expectd: you are shown details about the error
 - wait 10 seconds
 > expectd: the alert disappears

Change-Id: I626a7ba50ddfb415d5c8337baa0ce96f87f9842e
Reviewed-on: https://gerrit.instructure.com/109193
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Tested-by: Jenkins
Product-Review: Kendall Chadwick <kchadwick@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
2017-05-03 20:05:03 +00:00
Steven Burnett 5e2238dd06 destroy appointmentgroup if no more events
fixes CNVS-36124

Test Plan:
- Create some appointments in new scheduler (via modal)
- Delete all appointments
- Go to the syllabus page
- Notice that the event isn't showing there
- delete more events from your calenar
- notice nothing breaks
- watch screen cast for more context

Change-Id: Ib992247bf9267889f5a296e36536b23cdc4cc22d
Reviewed-on: https://gerrit.instructure.com/110470
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Chris Ward <cward@instructure.com>
2017-05-03 17:19:21 +00:00
Mysti Sadler e6c353ba57 Appointment group reservation peer visibility
closes CNVS-36109

Test plan
- In new Scheduler, set up an appointment group that
- allows students to see other appointment group students
- As a student, sign up for the appointment group
- As another student, sign up for the appointment group
- Ensure that after you  have reserved the appointment
- slot, you can still see the other student that is
- signed up for the slot

Change-Id: I9ecb5782a7cab9f6a5c6c1353bcc1f4e8647cd05
Reviewed-on: https://gerrit.instructure.com/110302
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Christi Wruck
2017-05-02 21:55:41 +00:00
Jeremy Neander 1c489cc7f3 create react foundation for gradebook grid assignment cells
closes CNVS-36301

test plan:
* basic regression checks on Gradezilla grid cells

Change-Id: I45d67613ad40e84eeb85a3f72ef2e4664c944230
Reviewed-on: https://gerrit.instructure.com/109651
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-05-02 20:40:18 +00:00
Cody Cutrer 99f5b454ed refactor and unify User#find_pseudonym_for_account and SisPseudonym
fixes CNVS-35919

also, prefer SIS pseudonyms over non-SIS pseudonyms from any given
account

test plan:
 * have a non-SIS pseudonym and a SIS pseudonym on a user
 * do an LTI launch
 * the LTI tool should get the info from the SIS pseudonym

Change-Id: I60a3c48a32eae94db93b0e72f1f0f6c5b6a5f5c2
Reviewed-on: https://gerrit.instructure.com/107785
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
2017-05-02 18:50:31 +00:00
James Williams 3d94fdc75f redirect to login page when linking to /files as unauth
test plan:
* in a new browser/incognito window, try to visit /files
* it should redirect to the login page

closes #CNVS-36611

Change-Id: Ie0d8e7b145e062b8aa9824c6c49c7ae2386f2d64
Reviewed-on: https://gerrit.instructure.com/110352
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-05-02 18:35:02 +00:00
Jeremy Stanley 4e01ef33a4 add blueprint unsynced changes endpoint
test plan:
 - set up a blueprint course and do an initial sync
 - create, update, and delete objects in the blueprint
 - before performing another sync, call the unsynced_changes
   endpoint and see that your changes are returned

closes MC-172

Change-Id: I6ff383a34b66217199923ed49b0456ff2f5e5be4
Reviewed-on: https://gerrit.instructure.com/110086
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-02 16:31:08 +00:00
Cody Cutrer 0571277626 MFA backup code support
fixes CNVS-35623

test plan:
 * disable redis
 * configure MFA; do not remember this computer
 * on your profile, there should be a link to MFA backup codes
 * follow it; it should show 10 codes
 * log out and log back in, using one of those codes
 * go back to your backup code list; the one you used should be
   crossed out
 * log out and log back in, attempting to use the same code;
   it should not allow you to
 * log in with another code
 * make note of one of the unused backup codes
 * regenerate your backup codes; it should give you 10 new codes,
   all unused
 * log out, and attempt to log in with one of the old unused codes;
   it should not allow you to
 * log in with one of the new backup codes; it should work
 * make note of backup codes
 * reconfigure MFA
 * look at your backup codes again; they should be different
 * make note of them again
 * disable MFA, and then configure it again
 * your backup codes should be different again

Change-Id: I20b1da102ef4cb757c80e1f46e276f88fdfb21b4
Reviewed-on: https://gerrit.instructure.com/21614
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: McCall Smith <mcsmith@instructure.com>
2017-05-02 16:08:53 +00:00
Matt Taylor c802f81ae2 Refactor to prep for GP Weights on Individual View
refs CNVS-36115

Test Plan:
  1. Review individual view of course with assignment groups

  Note: this is just a refactoring change, to prepare for
  another upcoming feature change

Change-Id: I2387f4389a6d09451fd00aa9ad73d97605e485c8
Reviewed-on: https://gerrit.instructure.com/109458
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: Shahbaz Javeed <sjaveed@instructure.com>
Product-Review: Christi Wruck
2017-05-01 22:24:48 +00:00
Shahbaz Javeed 5fe4539bbd persist student name display prefs and sorting by any column
closes CNVS-36430

test plan:
* Create two courses with two students and two assignments each
* Go to Gradezilla for Course 1
* From the Student Name column, change the "Sort by" value so the
  rows are sorted in a new way
* Reload the page and observe the rows continue to remain sorted
  the way they were before the reload
* Repeat with the "Display as" and "Secondary info" menus in
  the Student Name column
* Repeat with sorting on any of the Assignment, Assignment Group
  or Total Grade columns

* Go to Gradezilla for Course 2
* Verify the settings for Course 1 do not apply here
* Change any of the above settings for Course 2 and verify they
  stick after a reload
* Verify Course 1 settings haven't been changed as a result

* Create a third course, Course 3, with at least two sections
  and at least one student in each section.
* Go to Gradezilla and ensure the display is for "All Sections"
* Change the sort order of the Student column to "None" and
  verify it remains "None" after a reload

Change-Id: I4d2cf016453d2fb0f774629e5bc848fb452d4032
Reviewed-on: https://gerrit.instructure.com/109412
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Christi Wruck
2017-05-01 22:22:17 +00:00
Landon Wilkins 9893976560 da licença part 64
add consistent license headers to all source files

Change-Id: I4e4ec218aeff4f00ab67da80f57d980733902361
Reviewed-on: https://gerrit.instructure.com/110315
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:26:37 +00:00
Landon Wilkins 2893769ef6 da licença part 63
add consistent license headers to all source files

Change-Id: I500375e53f5942ef865ff220bb401bd21d98b27a
Reviewed-on: https://gerrit.instructure.com/110314
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:25:32 +00:00
Landon Wilkins c12f8666df da licença part 62
add consistent license headers to all source files

Change-Id: Ia3107f34470b6e8687df2baed79fed58a728f240
Reviewed-on: https://gerrit.instructure.com/110313
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:24:33 +00:00
Landon Wilkins 813af5e261 da licença part 61
add consistent license headers to all source files

Change-Id: I04e795a2caed8035c4c25b5e304b381aa98b4276
Reviewed-on: https://gerrit.instructure.com/110312
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:23:23 +00:00
Landon Wilkins 193a87afc0 da licença part 60
add consistent license headers to all source files

Change-Id: Ibaf8cf457ad92c6a1108e9254786d1f5f18b5662
Reviewed-on: https://gerrit.instructure.com/110311
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:20:40 +00:00
Landon Wilkins 6138cb3b68 da licença part 49
add consistent license headers to all source files

Change-Id: I6c45e0a29c4597cb8502e264e9d3cc1856653606
Reviewed-on: https://gerrit.instructure.com/110157
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:16:39 +00:00
Landon Wilkins e1d42ddc24 da licença part 59
add consistent license headers to all source files

Change-Id: I218bf2aef012547d39092cf2b3589c9fdaff3d0f
Reviewed-on: https://gerrit.instructure.com/110310
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:11:16 +00:00
Landon Wilkins b320b4b8a7 da licença part 58
add consistent license headers to all source files

Change-Id: I0780f036cd070968e6bc703fc4c7015be5df2184
Reviewed-on: https://gerrit.instructure.com/110309
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-05-01 21:10:34 +00:00
Keith Garner 96ab724495 add nil score as needing grading even if workflow state is graded
If a score is nil, but the workflow state is graded, we should still
consider it as needing to be graded. This should will clear up an
inconsistency between what one sees in the gradebook and things like
Assignment#needs_grading_count and the canvas dashboard.

fixes CNVS-36581

test plan:
 - Have an course with an online entry assignment and a student
 - Submit homework as the student
 - As a teacher, in the gradebook, grade the student for the assigment
 - As a teacher, in the gradebook, set an empty grade for the student
   for the assignment
 - Confirm on the canvas dashboard that your assignment needs grading

Change-Id: I41ce623f984b91c1e4e286b0f5934421f23b2e86
Reviewed-on: https://gerrit.instructure.com/109963
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Reviewed-by: Matt Taylor <mtaylor@instructure.com>
QA-Review: Trevor Needham <tneedham@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-05-01 20:32:55 +00:00
Sheldon Leibole d0aafbf363 move publish grades to sis from settings cog to actions menu
closes CNVS-36456

Test Plan

1. Enable Grade Export plugin.
2. As a teacher in a course with grades to export,
   navigate to Gradezilla.
3. Click the "Actions" menu.
  a. Verify "Publish grades to SIS" is a menu item.
  b. Click "Publish grades to SIS" menu item.
  c. Verify that you are taken to the course
     "Grade Publishing" tab.
4. Navigate back to Gradezilla
5. Click the settings cog button.
  a. Verify that "Publish grades to SIS" is no
     longer an option.
6. Verify that the "Publish grades to SIS" Actions menu
   item is keyboard and VO accessible.

Change-Id: I8433a59406756c892dcbce7b77d9eda61daafa47
Reviewed-on: https://gerrit.instructure.com/109400
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Pert Eilers <peilers@instructure.com>
2017-05-01 16:36:13 +00:00
Jeremy Stanley 83e392a0af API for returning blueprint migration results
test plan:
 - render documentation
 - test the "Get migration details" endpoint:
   - starting both with a blueprint course and a minion course
   - ensure a teacher without rights on the blueprint cannot
     call the endpoint on the blueprint (but can still call
     on a minion)
 - ensure creates, deletes, updates, and exceptions (for
   changed minion content) are returned as expected
   (exceptions show what type of content changed in the minion
    course to prevent the update from being synced:
    'content', 'points', 'due_dates', or 'availability_dates')
 - ensure when calling on a minion course, only exceptions
   for that minion course are returned
 - ensure the html_url retrieved links to the copy of the asset
   in the course the API endpoint is called on (master or minion)

closes MC-119

Change-Id: I73cf52304b080bbe564779294b53b4991700f0f8
Reviewed-on: https://gerrit.instructure.com/104789
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-05-01 16:26:08 +00:00
wdransfield 9314f28ab9 Fix modal issues in firefox
fixes PLAT-2482

Test Plan:
- Do a content item tool launch in Firefox
   (i.e. launch a tool from the rce).
- Verify you can focus elements in the tool's iframe
  via keyboard navigation in Firefox
- Verify focus loops to top of modal instead of
  falling through to page when forward tabbing through
  content.
- Verify focus loops to bottom of modal when reverse
  tabbing through content.
- Verify all instances of the jquery dialog continue
  to work as expected in supported browsers.

Change-Id: Ie832b8e9150f4a67af2386f6b84404b70c06b40c
Reviewed-on: https://gerrit.instructure.com/109748
Tested-by: Jenkins
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2017-05-01 15:50:29 +00:00
Landon Wilkins c6beee4c5f da licença part 44
add consistent license headers to all source files

Change-Id: I621e5e994129722ebeedb6b1cc3e75fa80ded63f
Reviewed-on: https://gerrit.instructure.com/110147
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 22:48:20 +00:00
Landon Wilkins 05dec64bbd da licença part 50
add consistent license headers to all source files

Change-Id: Idbd54625443f6fed9057a21730b160765b8ba080
Reviewed-on: https://gerrit.instructure.com/110153
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 19:01:52 +00:00
Landon Wilkins 242581edd3 da licença part 48
add consistent license headers to all source files

Change-Id: Ib581cddb21430cf4971aeb14980727c2935e31e4
Reviewed-on: https://gerrit.instructure.com/110154
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 18:59:33 +00:00
Landon Wilkins a55623016d da licença part 47
add consistent license headers to all source files

Change-Id: I8d372efee113550ada3255f32ec6f1858e5520c4
Reviewed-on: https://gerrit.instructure.com/110152
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 17:59:55 +00:00
Landon Wilkins 0ce4a23f58 da licença part 46
add consistent license headers to all source files

Change-Id: If9d3b01addc4fd9c2977bf2402dda57ec622e72f
Reviewed-on: https://gerrit.instructure.com/110151
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 17:56:22 +00:00
Landon Wilkins 41385e29e7 da licença part 45
add consistent license headers to all source files

Change-Id: I29fdb6dbff5bb4d0e0d7c0ffeea422faaf6a4afa
Reviewed-on: https://gerrit.instructure.com/110150
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 17:53:35 +00:00
Simon Williams 256e0bf276 allow custom throttling per access token or user id
this allows customizing the throttle settings value by updating a JSON
hash in the Setting table: `request_throttle.custom_settings` (see
formatting below)

The Setting value is a hash of client identifiers -> custom settings.
A custom setting is a hash with some subset of the following keys: hwm,
maximum, outflow, up_front_cost.  the values of those keys are floats.
For example:

  Setting.set(
    'request_throttle.custom_settings',
    { 'user:10000000000001' => { 'hwm' => 1000.0 } }.to_json
  )

these values will be used instead of the default values for requests
from that specific client_identifier

fixes CNVS-35965

test plan:
- set up a script that hammers the API and gets throttled
- create two users with two tokens
- set maximum and hwm to really high values for one (by user id), and
  verify that it is no longer throttled
- repeat, but use the access token as the id

Change-Id: I8a5e393721c7cbd4c754989ba219f92f0e280ee1
Reviewed-on: https://gerrit.instructure.com/105302
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2017-04-28 17:52:13 +00:00
Landon Wilkins 2f26c46311 da licença part 43
add consistent license headers to all source files

Change-Id: Ief50339aedf02bb206dcc2ccba1716353702a8a9
Reviewed-on: https://gerrit.instructure.com/110148
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2017-04-28 17:48:54 +00:00
Colleen Palmer 79d4e804f6 Revert to old masquerade
closes: CNVS-36564

We need to implement some better ux and more info in the new
masquerade workflow. To start we're reverting back to the old
masquerade while we sort through and work on those new features.

Original commit: https://gerrit.instructure.com/#/c/108292/16

Test Plan - Make sure all of these match look/feel of
what's on prod:

- Navigate to the following places where masquerading
  occurs
  * Courses/People (Selecting 'Masquerade' through Student
  	Context Tray)
  * Courses/People (Selecting User Details from the drop
  	down menu and selecting 'Masquerade')
  * Admin/Users (Select the user then select 'Masquerade')
  * Groups/People (Select the user, then select 'User Account
  	Details' then 'Masquerade')
  * Any other obscure locations where you can masquerade
- In each above location, selecting 'Masquerade' will open
  a modal with a panda/mask animation
- Within the modal, selecting 'Masquerade' should cause
  a loading spinner to appear briefly. Then you should
  be taken to the student masquerade view which should
  behave as it did before.

Change-Id: Iedecbc7967ae41eceb9375b3c5b1e35787639c09
Reviewed-on: https://gerrit.instructure.com/110070
Tested-by: Jenkins
Reviewed-by: Stephen Jensen <sejensen@instructure.com>
QA-Review: Adrian Russell <arussell@instructure.com>
Product-Review: Chris Hart <chart@instructure.com>
2017-04-28 16:25:04 +00:00
Spencer Olson 03ef5d7d77 fix staleness issues with cached_due_date
closes CNVS-36401

test plan:

1. Add an indivdual student override for a student on an assignment.
   Verify the cached_due_date on the submission is updated to reflect
   the override due date (assuming there aren't other overrides for
   that user on the assignment that have a more lenient due date).

2. Remove an individual student override for a student on an
   assignment. Verify the cached_due_date on the submission is updated
   and no longer matches the due date on the override that was removed
   for the student.

3. Enroll a student in 2 sections in a course (Section 1 and Section
   2). On an assignment, add a section override for Section 1 and an
   individual student override for the student. The section override
   should have a more lenient due date than the individual student
   override. Then remove the student from Section 1. The cached_due_date
   on the submission for the assignment should be updated. It should no
   longer reflect the due date from the Section 1 override and should
   now reflect the due date for the individual student override.

Change-Id: I046eb6a468f61af905d96eb1b2a6e41efebc6b8e
Reviewed-on: https://gerrit.instructure.com/109005
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-04-28 16:01:47 +00:00
Brian Park 2f74402339 rewire gradezilla sis push/sync to action menu
closes: CNVS-33683

Test Plan:
1. Navigate to gradezilla as a teacher and open action menu
  - Observe LTI items appear when conditions are met
    * current user has permission to publish grades
    * LTI with the :post_grades extension is installed
  - Observe Plugin item appears when conditions are met
    * current user has permission to publish grades
    * feature flag is enabled
    * course has a sis id
    * there is at least one assignment grade to post
      - the assignment has sis posting enabled
      - the assignment has at least one graded submission
  - Observe Plugin item has label 'Sync to SIS'
    * label reads 'Sync to {sis_name}' when sis handle is set
  - Observe old button/menu placements are now gone
2. Select the new menu items
  - Observe the old behavior for that functionality is invoked
  - Observe that the expected element is focused
     - on open
     - on close

Change-Id: I442ae2fcd1e488908c354993a801398e1618fb60
Reviewed-on: https://gerrit.instructure.com/107077
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Christi Wruck
2017-04-27 21:10:41 +00:00
Jeremy Stanley 3818a3f7eb don't require content in default blueprint lock
test plan:
 - in course settings, under the Blueprint checkbox, default lock
   configuration, "content" should be checked by default in a new
   course, but it should be uncheckable
    
 closes MC-168

Change-Id: Icf0aa6d031b835446a876f8a77bdcd93b5ecf4df
Reviewed-on: https://gerrit.instructure.com/109673
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2017-04-27 20:49:46 +00:00
James Williams bb48ab6600 let admins see concluded course user page
also fix for inactive students

test plan:
* have a course with a concluded student
* as an account admin, view the student's
 user page (/users/:id)
* click on the concluded enrollment to view the
 user's course-specific page
* the page should load correctly

closes #CNVS-36515

Change-Id: I14210575ba43b45c33819b9e63956085d4871cbc
Reviewed-on: https://gerrit.instructure.com/109834
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2017-04-27 18:59:07 +00:00
wdransfield f5a0bc850c Use correct submission service endpoints
closes PLAT-2546

Test Plan:
- Retrieve a TCP with the submission service and verify
  the 'endpoint' value of the service matches the lti/submission
  controller routes.

Change-Id: Iebe3954296842cff60193397c445ebf242db9561
Reviewed-on: https://gerrit.instructure.com/109647
Tested-by: Jenkins
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2017-04-27 13:24:48 +00:00
wdransfield 084369a17b Change originality report service endpoint
Closes PLAT-2537

Test Plan
Verify the originality report service's endpoint value
now includes 'api/lti' instead of 'api/v1'

Change-Id: I25e02dcba47e9a99ec721a99a47573a071e07888
Reviewed-on: https://gerrit.instructure.com/109419
Tested-by: Jenkins
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2017-04-27 13:24:39 +00:00
Nick Houle d93475bf18 SIS vs Canvas ID on SIS Import Page
Fixes: CNVS-36268

Test plan:
- Sync a PowerSchool Agent you have previously synced to Canvas
  before
- In your Canvas instance navigate to the SIS Imports page
- Upon the import completing comfirm the warning messages have a
  more descriptive message as:
  "An existing Canvas user with the SIS ID"
  OR
  "An existing Canvas user with the Canvas ID"

Change-Id: I3fc86e5d0de77862cfcb0741625c872dd580f882
Reviewed-on: https://gerrit.instructure.com/108368
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Product-Review: Brad Humphrey <brad@instructure.com>
2017-04-26 22:44:40 +00:00
Ed Schiebel ef9dedd4f8 Remove Delete from cog menus for Assignments and Quizzes
fixes MC-166

test plan:
 - master course with locked and unlocked assignments and quizzes plus
   associated minion course
 - goto minion course assignments|quizzes page
 > expect delete to exist in cog of unlocked item, not in locked
 > item
 - open each item
 > expect delete in cog menu of unlocked item, not in locked
  (there is no cog menu in assignment show page)
 - edit each item
 > expect delete in cog menu of unlocked item, not in locked

Change-Id: I3ff963cfc94ef27b24867f45ae44371aa16b0d35
Reviewed-on: https://gerrit.instructure.com/109668
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Kendall Chadwick <kchadwick@instructure.com>
2017-04-26 22:02:53 +00:00
Matthew Wheeler 162f010ebc Add fields to live events
Fixes PLAT-2483

* Add root_account_lti_guid
* Re-add provider

Test Plan:

- setup multiple root accounts with /c/108963/
- spinup local live-event testing services
- test out live-event spawning processes as a result of a delayed job
- assert that the kinesis stream contains events with attributes
  containing `root_account_lti_guid` and `provider`

Change-Id: If8e44924145fb8687a16b189d63ad58528ec901e
Reviewed-on: https://gerrit.instructure.com/108970
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
2017-04-26 21:23:35 +00:00
Anju Reddy e1719b299e spec: Adding a fix for chrome failure (click nto working first time)
Change-Id: I10bf8f39e33ae334b9d3989f73cc171573b5e752
Reviewed-on: https://gerrit.instructure.com/109763
Tested-by: Jenkins
Reviewed-by: KC Naegle <knaegle@instructure.com>
Product-Review: Gentry Beckmann <gbeckmann@instructure.com>
Tested-by: Gentry Beckmann <gbeckmann@instructure.com>
QA-Review: Gentry Beckmann <gbeckmann@instructure.com>
2017-04-26 20:07:32 +00:00
Derek Bender 1c53ab3d72 add late_policy controller/serializer
closes CNVS-36146

test plan:
- hit the following api endpoint (id is the course id):
  - /api/v1/courses/:id/late_policy
  with the following verbs:
  - GET (show)
  - POST (create)
  - PATCH (update)
  the following valid params for LatePolicy are available:
  - missing_submission_deduction_enabled
  - missing_submission_deduction
  - late_submission_deduction_enabled
  - late_submisison_deduction
  - late_submission_interval
  - late_submission_minimum_percent_enabled
  - late_submission_minimum_percent
  example set of valid params:
  - missing_submission_deduction_enabled: false
  - late_submission_deduction_enabled: true
  - late_submisison_deduction: '1'
  - late_submission_interval: 'hour'
  - late_submission_minimum_percent_enabled: true
  - late_submission_minimum_percent: '10'
  example set of invalid params:
  - late_submisison_deduction: '-1'
  the user must be a user with manage_grades permissions such as a
  teacher enrolled in the course, otherwise the json response will have
  an unauthorized message
- refer to the api docs for late_policy for more details

Change-Id: I9e3b2704680cf4b1f9b789deb1dccb2a1ccaa5d5
Reviewed-on: https://gerrit.instructure.com/108989
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
QA-Review: Keith T. Garner <kgarner@instructure.com>
2017-04-26 19:09:55 +00:00