test plan:
- enable a web conference plugin
e.g. https://gollum.instructure.com/Big-Blue-Button
- create and activate a web conference in a course
- as a teacher, on the course home page / course stream, you
should see an invitation to join the web conference in
progress, and an "End it now" button
- click "End it now" and refresh the page. the invitation
to join the web conference should not come back.
fixes CNVS-27840
Change-Id: Ief3593692b22809a03465a306256e5a68ff1f271
Reviewed-on: https://gerrit.instructure.com/74669
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
either with Relation#all or Association#scope
refs #CNVS-26056
Change-Id: Ie370a3c47c575007ce3b0ba75a122d854e6f8fbc
Reviewed-on: https://gerrit.instructure.com/69497
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
write_attribute returns the original object but not
the actual stored object anymore
refs #CNVS-26056
Change-Id: I3f602a9060daf244d3c90f89286f571e804f43f0
Reviewed-on: https://gerrit.instructure.com/69498
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes CNVS-20226
test plan:
- as an admin who is not enrolled in a course,
- create a new web conference
- it should work (it won't send you an invitation email, but at least it
won't blow up)
Change-Id: Ic36b7d9dfdf25a27e2bcd71d2cc78281cef6f94b
Reviewed-on: https://gerrit.instructure.com/53806
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
Fixes: CNVS-19783
Test Plan:
Run migrations
Create a new web conference.
Get the conference key from a rails console:
conf_key = WebConference.last.conference_key
Get the secret key:
secret = WebConference.last.config[:secret_dec]
Put together a signed payload like this:
signed = JWT.encode({meeting_id: conf_key}, secret)
Then post it to your localhost like this (not in the rails console):
curl --data "signed_parameters={the string you got handed when you signed the payload}" http://localhost:3000/api/v1/courses/{your course id}/conferences/{your conference id}/recording_ready
If you look at the rails server you should see the html of the notification email fly by.
Change-Id: I87cf9fc229130c2e23529c47856a66aa8e57c697
Reviewed-on: https://gerrit.instructure.com/51813
Reviewed-by: Joel Hough <joel@instructure.com>
Tested-by: Jenkins
QA-Review: Derek Hansen <dhansen@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
https://github.com/instructure/canvas-lms/pull/532
Fixes CNVS-19781
test plan
ending a not long-running meeting
- create a BBB conference that is not long-running
- ensure that an "End" button appears in the canvas
ui
- end the meeting in canvas
- ensure the meeting in BBB has been ended
deleting recordings
- create a BBB conference with recordings
- make sure that BBB has the recordings
- delete the conference in canvas
- ensure that the conference in BBB has been ended
and the recordings have been deleted
Change-Id: I6cd21304cec7128510f6e9b107800bd42357f17d
Reviewed-on: https://gerrit.instructure.com/51929
Reviewed-by: Andrew Butterfield <abutterfield@instructure.com>
Tested-by: Jenkins
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
test plan:
* enable a web conference plugin
* add a teacher to a course
* create a group
* as the teacher, should be able to create
conferences for the course and group
* as an account admin, disable the permission
to "Create conferences" from the teacher role
* the teacher should no longer be able to create
conferences
closes #CNVS-5370
Change-Id: Ic0955bd09b09e5026754f754077889904918cbbb
Reviewed-on: https://gerrit.instructure.com/49856
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
and remove base_ar_class, that does the same thing
Change-Id: Id76a2dcc375cfea397ff4b4853f50d660b6b044c
Reviewed-on: https://gerrit.instructure.com/41783
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Nick Cloward <ncloward@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
refs CNVS-13987
what was called CanvasUuid was *not* generating UUIDs. it was generating
slugs. by default, its generate method only creates 4 character slugs.
these should obviously not be used as UUIDs. the misnomer already caused
a bug in EventStream where it used these slugs as UUIDs, causing
collisions. to fix:
(1) rename canvas_uuid gem to canvas_slug, and rename it's primary
class CanvasUuid to CanvasSlug
(2) create new canvas_uuid gem, with class CanvasUUID, extracted from
lib/uuid_singleton for actual UUID generation
(3) fix event stream use CanvasUUID, rather than following the rename
of CanvasUuid to CanvasSlug
test-plan:
- have cassandra set up for audit logs
- create an audit log entry (e.g. change a grade)
- look at the generated audit log entry's id field; it should be a UUID
value, not a 4 character slug
Change-Id: I19758fff4433cd6cb2e21219217dced19ee05c5a
Reviewed-on: https://gerrit.instructure.com/37506
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
instead of passing an :exportable option to
ActiveRecord::Associations, simply define a constant
on the class containing exportable associations and
attributes. This is due to :exportable breaking
ActiveRecord, and we can't simply monkey-patch in
config/initializers because models are included in
migrations before the initializers are run
Change-Id: I11f1a6b4570c397d8e01010c517bc6efdac7afca
Reviewed-on: https://gerrit.instructure.com/33235
Reviewed-by: Braden Anderson <banderson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Anthus Williams <awilliams@instructure.com>
QA-Review: Anthus Williams <awilliams@instructure.com>
Change-Id: Ic226e61e900532cc3acf08444b316b6e2bb6b368
Reviewed-on: https://gerrit.instructure.com/30049
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-10839
test plan
- enable wimba and adobe connect conference plugins
- make a conference
- ensure it is visible on the conference index page
- disable the plugin for the conference
- ensure it is no longer visible on the conference index page
Change-Id: Idc26d306f683fade5bf6d8619dfe9325047bb116
Reviewed-on: https://gerrit.instructure.com/29487
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
Change-Id: I77aebfc4626971bc113e440f6a9639574c91423b
Reviewed-on: https://gerrit.instructure.com/29471
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes: PS-918
test plan:
you should be able to get a list of the web conferences through the API
Change-Id: I4bdfe35acbf4e6407a1fe5bcac67f4cca30aa6a0
Reviewed-on: https://gerrit.instructure.com/27592
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
refs PS-894
test-plan:
requires g/27337 to test functionality
* conferences should behave the same without g/27337
Change-Id: I546e806897fa35bc93b983da2d149e312f502d2d
Reviewed-on: https://gerrit.instructure.com/27338
Reviewed-by: Braden Anderson <banderson@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-1602, CNVS-1443
test plan:
xml error:
- create a long running BigBlueButton conference.
- start the conference, click though the initial dialogs, and
then close the conference page.
- refresh the canvas conferences page so the "join" button
shows up and then wait at least 6 minutes.
- click the "join" button and verify you rejoin the conference
instead of getting an xml error.
- close the conference and wait another 6 minutes.
- click the "end" button on the conference and make sure you
don't get any errors.
moderator status:
- as a teacher, create and start a BigBlueButton conference.
- in another browser, join the conference as a student.
- have the teacher leave the conference while the student is
still in the conference.
- rejoin the conference as the teacher and see that the
teacher regains their moderator/presenter status.
Change-Id: I70421ddc7f853d749b5f7b56d39859d04e196c32
Reviewed-on: https://gerrit.instructure.com/25574
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
fixes CNVS-5985, CNVS-5661
testing instructions
=====================
on the conferences page:
* create a new conference
* can edit and update an existing conference
* can delete a conference
* after deleting all conferences in a group,
the text showing "no conferences" should appear
* web conference type selection is disabled
but visible when there is only 1 conference type
* conference type selection is visible and enabled
when there are multiple types to choose from.
* concluded conferences can be deleted
* users should not be able to update or delete
when they don't have permission
* long running conference that is started
should show the "Join" button and the
"End" button that will close the conference.
Wimba Conferences:
* "Manage Advanced Settings..." link
shows up for and does not appear for other
conference types
BBB Conferences:
* make sure the "recording" checkbox appears and
is persisted properly
* test recording and playback of BBB conferences
Change-Id: Id97e9d4bdc509396b6d995a2b18e600f9426aba2
Reviewed-on: https://gerrit.instructure.com/20939
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Jon Willesen <jonw@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
fixes CNVS-5660
test plan:
- setup the BBB conferences plugin.
- create a new BBB conference, and click the checkbox to record
the conference.
- start the conference, do some stuff, logout, and then wait a
few minutes.
- start script/console and find the conference you just
created: `wc = WebConference.find(1234)`
- in the console, type `pp wc.recordings; nil`
- you should see a recording_id, a duration_minutes, and a
playback_url.
- copy-and-paste the playback_url into your browser. you
should go to the BBB playback page and be able to view the
recorded conference.
Change-Id: I326ac25ef0280350a85a37215a5659fc6a827151
Reviewed-on: https://gerrit.instructure.com/20783
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
QA-Review: Jon Willesen <jonw@instructure.com>
fixes CNVS-3418
test plan:
- create a conference room and start/enter it
- in a different browser (or private) log in as someone else and
join the same conference
- ensure that both people can connect to the conference
Change-Id: Id043e2c69a1fea13197cccffc8fda5f41b798718
Reviewed-on: https://gerrit.instructure.com/17709
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
test plan:
* create and publish a course
* invite and accept a student
* change the course dates to the future, and restrict access to
them
* create a web conference
* the student should not get a notification
Change-Id: I06b0226c01fd38f99afed0ce767e9e7207864fbe
Reviewed-on: https://gerrit.instructure.com/10288
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
added a :resume permission so participants can join long-running
conferences even if they go inactive
test plan:
1. set up wimba (or bbb)
2. create a conference with a duration
3. confirm that students can't join unless it's active (in the case of
wimba, that means an admin needs to be in the conference. for bbb,
an admin needs to have been present in the last hour)
4. create a long running conference (no duration)
5. confirm that students can join any time after it was started,
regardless of whether the admin is still participating
Change-Id: Ie81ea7309b6334d88269af098f3b0da6fb04a177
Reviewed-on: https://gerrit.instructure.com/9433
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
these are syntax errors in 1.9.x
Change-Id: I7cbd66643cb371e4be9f8da0365bf1e988ee5de8
Reviewed-on: https://gerrit.instructure.com/5833
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
check for presence, validity, and enabled of settings as whole,
rather than if any settings (including defaults) exist
Change-Id: I33a7cbd2da645185cce7bbd7b154e27f28a0ddfe
Reviewed-on: https://gerrit.instructure.com/4899
Tested-by: Hudson <hudson@instructure.com>
Tested-by: Selenium <selenium@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Basically, don't call a bazillion procs everytime you check_policy;
just the "given" statement. Everything else is evaluated just once,
and cached on the class. This does lose functionality (the ability
to access the instance inside of set_policy, and set methods), but
none of it was currently in use.
Change-Id: I736879d98beb4115a2e8c492931c755076291d08
Reviewed-on: https://gerrit.instructure.com/4665
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
added generic user_setting fu to conference classes so we can expose
conference-type-specific settings in the canvas ui
Change-Id: I37a30ad3643d358be1458f59da488f34f680bb8b
Reviewed-on: https://gerrit.instructure.com/3140
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>