in ruby 2.1, AllowedServicesHash.reject {} will return a AllowedServicesHash,
on 2.3 it will return a plain Hash. so dup it instead (which returns an
AllowedServicesHash), and then reject! (which doesn't change the type
of the object). this works in both 2.1 and 2.3
Change-Id: Ic6eac219e31cd469afd45d026822654c11180b49
Reviewed-on: https://gerrit.instructure.com/92553
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Google drive relevant code has been moved to the gems/google_drive
Actually test google drive with mocked api responses
cleaned up lots of code
Fixes PLAT-1301
Test Plan:
*** You'll need to use 2 separate google accounts to fully test ***
** Its helpful to have multiple chrome profiles so you dont have to log in and
** out a bunch https://support.google.com/chrome/answer/2364824?hl=en
BEFORE SWITCHING TO THIS PATCH SET
- Make sure you have some google doc collaborations
- Directions for creating one are below
- Disable your google docs plugin
Switch to the patch set
Enable google drive. (if not already)
- You should be able to paste in a client_secrets.json
- Update Redirect URI to point to your local instance (The URI should exist in the JSON)
As an admin/teacher
- Goto `profile/settings` and add the google drive user service
- Your email should be displayed with the service
- Goto Collaborations
- Make sure existing collaborations still work
- Click "Start new collaboration"
- give it a nice name (Created by admin)
- select your student
- click start collaborating
- You should be redirected to the new doc in google
- create another collaboration without the student (Created by admin, no users)
- Create an assignment with
Submission Type: Online
Online Entry Options: File Uploads
- Make sure your student has access to the course/assignment
- Goto Account settings -> Users
- Click View User Groups in the top right
- create a new group set with a group in it
- add yourself and your student to the group
- Goto the Group's Collaborations (Courses & Groups -> [group name] -> Collaborations)
- Click "Start new collaboration"
- give it a nice name (Created by admin for group)
- select your student
- click start collaborating
- You should be redirected to the new doc in google
As a student
- Goto `profile/settings` and add the google drive user service
- Your email should be displayed with the service
- Goto the assignment
- Submit the assignment
- You should have a "Google Doc" tab
- Choose a document and submit it
- After it submitted, click download on the right side
just to make sure its correct
- Goto Collaborations
- Make sure existing collaborations still work
- make sure the "created by admin" collaboration works
- make sure you can't see "Created by admin, no users"
- Click "Start new collaboration"
- give it a nice name (created by a student)
- click start collaborating
- You should be redirected to the new doc in google
- Switch to your admin/teacher and make sure they can't access it
- Edit the collaboration add the teacher, click Save
- Switch to your admin/teacher and make sure they can access it
- Goto `profile/settings` and REMOVE the google drive user service
- Go back to collaborations
- You should be forced to add the google service in order to use a collaboration
- Goto the Group's Collaborations (Courses & Groups -> [group name] -> Collaborations)
- Make sure you can access "Created by admin for group"
- Click "Start new collaboration"
- select your admin/teacher
- click start collaborating
- You should be redirected to the new doc in google
- make sure your admin can access it to
As a site admin
- Disable Google Drive
- Then with your student
- Make sure you can still do file upload submissions on the assignment
- Collaborations should no longer show up (unless you have etherpad enabled)
- Google drive should no longer show up in your profile settings as a registered service
Change-Id: I4dfaff6f5262743c044aadd12266fd0bd85a60e1
Reviewed-on: https://gerrit.instructure.com/69078
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
refs #CNVS-26056
Change-Id: I828ea5e6c2029ca89969acdb8caa26828df96f40
Reviewed-on: https://gerrit.instructure.com/69486
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
loading AccountServies.allowable_services shouldn't calculate
"expose_to_ui" when unnecessary
Change-Id: I86c6bebb88c372932283b063054a5f9e5fb947e1
Reviewed-on: https://gerrit.instructure.com/61186
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
this helps plugins not need to load Account in order to register a service
Change-Id: I0655f14798f5af018c5e498adc0e59013d9a2d5b
Reviewed-on: https://gerrit.instructure.com/51954
Tested-by: Jenkins
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>