diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 00000000..94e490c5 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,431 @@ +## v5.1.5 ## + +- Bugfix: Add PNG/SVG calendar icon for Moodle 4.3 #558 (thanks @ScottVerbeek) +- Bugfix: Display user fullname in breakout room participant list #562 (thanks @mofetdanielsmolkin) +- Bugfix: Sort session report by start time #567 +- Code quality: Namespace CSS identifiers #560 (thanks @danielcifuentesopen) +- Code quality: Optimize SVGs #561 (thanks @jakearchibald for SVGOMG) +- Code quality: Remove long-forgotten todo PHPDoc tags causing warnings in moodle-cs v3.3.13 +- Regression: Registration field default was accidentally upgrading to null #565 (thanks @michael-milette) + - Introduced in v5.1.0 when fixing recording field definition. + +## v5.1.4 ## + +- Bugfix: Avoid breaking completion defaults form in Moodle 4.3 #555 (thanks @opitz) +- Regression: 'Use' missing classes required for Moodle app #554 (thanks ramprakash k) + - Introduced in v5.1.1 when moving classes into namespaces. + +## v5.1.3 ## + +- Bugfix: Allow editing a past Zoom meeting without changing the time #545 (thanks @davefoord, @tlock) +- Bugfix: Remove unused start_url field from the database #546 (thanks @ShilVita) +- Regression: "Recurring No Time" admin setting was defaulting to "Daily" #544 (thanks @easegill) + - Introduced in v4.9.0 when adding support for meeting registration. + +## v5.1.2 ## + +- Bugfix: Skip redundant calendar permissions check #535 (thanks @danowar2k) +- Bugfix: Initialize scopes from cache to avoid TypeError #542 (thanks @foxlapinou) +- Regression: Restore exceptions were not being caught #537 + - Introduced in v5.1.1 when moving classes into namespaces. +- Code quality: Void test return types in moodle-cs v3.3.10 #536 + +## v5.1.1 ## + +- Bugfix: Get all meeting recordings, not just the last occurrence #517 (thanks @LGPoly) +- Bugfix: Choose meeting reports API based on OAuth permissions #525 (thanks @xmontana) +- Bugfix: Get meeting reports based on end time #514 (thanks @xmontana) +- Bugfix: Stop showing dates for 'No Fixed Time' meetings #529 (thanks @Melle-Amu) +- Bugfix: Fix external class namespace #530 (thanks @danmarsden) +- Bugfix: Store recording types as language keys, not translated strings #516 +- Bugfix: Define testcase class properties (PHP 8.2) #522 +- Code quality: Align with Moodle's new moodle-extra ruleset #521 +- Code quality: Array syntax updates in moodle-cs v3.3.7 #524 +- Code quality: Test against Moodle 4.3 and PHP 8.2 #531 + +## v5.1.0 ## + +- Feature: Show activity date/time directly on course page #509 (thanks @cdipe) +- Regression: Auto recording was forced off by default #505 (thanks @emmarichardson) + - Introduced in v4.7.0 when adding automatic recording settings. +- Bugfix: Validate meeting name length using Zoom's 200 character limit #512 (thanks @lcollong) +- Bugfix: Resolve database inconsistencies #505 (thanks @fabianbatioja, @foxlapinou) +- Bugfix: Skip grading/completion during pre-registration #507 (thanks @tbeachy) +- Bugfix: Correct error message handling #503 (thanks @jwalits) +- Bugfix: Provide prescribed Promise parameters #499 (thanks @fmido88) + +## v5.0.0 ## + +- Backward incompatible: Drop support for JWT authentication (thanks @aspark21) + - Zoom requires everyone to use Server-to-Server OAuth by September 1, 2023 +- Backward incompatible: Require PHP 7.1+ (Moodle 3.7+) (thanks @rlaneIT) +- Backward incompatible: Drop Moodle 3.4 mobile support + +## v4.10.3 ## + +- Bugfix: Also use proxy settings for OAuth token request #494 (thanks @adnbes) +- Bugfix: Clean up exception handling to avoid notice #482 (thanks @andremenrath) +- Bugfix: Avoid course/activity completion form overhead #481 (thanks @phette23) +- Regression: PHP 7.0 class constant visibility errors #495 (thanks @rlaneIT) + - Introduced in v4.10.1 when aligning with PSR-12 coding standards. + +## v4.10.2 ## + +- Regression: Instructors were unable to edit Zoom activity completion defaults #479 (thanks @phette23) + - Introduced in v4.6.0 when adding breakout room support. +- Bugfix: Course reset now verifies that the Zoom checkbox is checked #483 (thanks @carlosalal) + +## v4.10.1 ## + +- Bugfix: Stop showing finished events in My Overview block #451 (thanks @nstefanski) +- Bugfix: Automatically retry on TLS connection error #466 (thanks @lcollong) +- Bugfix: Allow restoring activiting that are missing `option_auto_recording` #470 (thanks @lexxkoto) +- Bugfix: Document that each Moodle install needs its own OAuth app #475 (thanks @DLM-unipd, @haietza) +- Bugfix: Check required scopes before caching OAuth token #475 (thanks @tbeachy) +- Code quality: Align with Moodle-compatible PSR-1 and PSR-12 rules #465 +- Special thanks to @rickbeasley for his contributions to this plugin and to the team. + +## v4.10.0 ## + +- Feature: Option for redefine licenses to only affect users on 'this' Moodle server #436 (thanks @KepaUrzelai) + - New setting `zoom/instanceusers` +- Bugfix: Process recordings deletes one meeting at a time #439 (thanks @juanbrunetmf) +- Code quality: Use short array syntax (MDLSITE-4776) #447 +- Code quality: One space around assignment operators (MDLSITE-6594) #457 + +## v4.9.2 ## + +- Bugfix: New meetings did not know which user to check for security settings #438 (thanks @haietza) +- Bugfix: Use select field so registration option saves correctly #448 (thanks @paulandm) +- Compatibility: grunt rebuild against Moodle 4.1 #446 + +## v4.9.1 ## + +- Regression: Administrators without Zoom account were unable to edit #422 (thanks @juanbrunetmf) + - Introduced in v4.7.0 when adding automatic recording options. +- Bugfix: Respect host settings for meeting options and reduce unnecessary API calls #422 +- Bugfix: Always request JSON API responses and show error details #426 (thanks @sascha-serwe) +- Bugfix: Default start time should be in the future and be a multiple of 5 minutes #427 + +## v4.9.0 ## + +- Feature: Allow Registration #412 (thanks @paulandm, @haietza, @MoleLR, @lcollong, @louisaoc) + - New setting `zoom/defaultregistration` + - New per activity setting `registration` +- Bugfix: Update meetings task was throwing an exception #421 (thanks @lexxkoto) +- Bugfix: Add missing cache definition language string #408 (thanks @aspark21) +- Bugfix: Use user-level meeting security configuration #408 + - Removed OAuth scope: `account:read:admin` +- Regression: Moodle < 3.4 does not support hideIf() + - Introduced in v3.5 of this plugin while tidying the form UI. + - Minimum required Moodle version officially increased to 3.4. + +## v4.8.1 ## + +- Bugfix: Moodle 4 was displaying the activity description twice #417 (thanks @Laur0r, @haietza) +- Bugfix: Avoid HTTP/2 error when using Server-to-Server OAuth #418 (thanks @phette23) + +## v4.8.0 ## + +- Feature: Support Server-to-Server OAuth app #387 (thanks @haietza, @mhughes2k) + - New settings `zoom/accountid`, `zoom/clientid`, `zoom/clientsecret` + - Reminder: You must [switch from JWT to Server-to-Server OAuth by June 2023](https://developers.zoom.us/docs/internal-apps/jwt-faq/). +- Regression: Locked settings were not being applied #407 (thanks @krab-stik) + - Introduced in v4.7.0 while adding support for automatic recording. + +## v4.7.0 ## + +- Feature: Allow automatic recording #390 (thanks @aduranterres, @lcollong) + - New settings `zoom/recordingoption`, `zoom/allowrecordingchangeoption` + - New per activity setting `option_auto_recording` + - Known issue: Causes pre-existing events to turn off automatic recording when edited. +- Performance: Static caching of repeated API calls #402 (thanks @aduranterres) + +## v4.6.2 ## + +- Regression: Rename mustache templates for backward compatibility #398 (thanks @PhilipBeacon) + - Introduced in v4.6.0 by new mustache templates in sub-directories (a Moodle 3.8 feature). +- Bugfix: Recognize the Webinar capabilities of a Zoom Events license #338 (thanks @dottbarbieri) +- Bugfix: Avoid PHP Warning when restoring Zoom activities without breakout room data #399 + +## v4.6.1 ## + +- Bugfix: Avoid JavaScript error when 'Show More' button does not exist #392 (thanks @mwithheld) +- Bugfix: Add missing privacy coverage for breakout rooms; fix privacy data deletion #395 (thanks @hdagheda) + +## v4.6.0 ## + +- Feature: Pre-assign Breakout Rooms #371 (thanks @annouarf, @levemar, University of Montreal, @mhughes2k) +- Bugfix: Validate start times and duration for timed recurring meetings #389 (thanks @nchan31, @jwalits) + +## v4.5.3 ## + +- Bugfix: Allow plugin settings to update without a configuration exception #386 (thanks @acquaalta) + +## v4.5.2 ## + +- Regression: Avoid requiring paid accounts for meeting default settings #383 (thanks @nstefanski, @nickchen, @valeriy67, @obook) + - Introduced in v3.5 to determine passcode requirements. +- Bugfix: Allow course restore to complete even when Zoom is not fully configured #378 +- Code quality: Require PHPUnit to pass without warnings #379 + +## v4.5.1 ## + +- Regression: Fix Zoom activity icon visibility #375 (thanks @foxlapinou) +- Compatibility: Fix PHPUnit deprecation warnings #373 + +## v4.5.0 ## + +- Feature: Support for Reset course functionality #370 (thanks @izendegi) +- Compatibility: Improved support for Moodle 4.0 #369 + +## v4.4.0 ## + +- Feature: Allow configuration of section visibility on the view page #363 (thanks @aduranterres, @rayjbarrett1) + - New settings `zoom/defaultshowschedule`, `zoom/defaultshowsecurity`, `zoom/defaultshowmedia` + - New per activity settings `show_schedule`, `show_security`, `show_media` +- Feature: Allow administrator to set webinar by default (when available) #367 (thanks @marcellobarile) + - New setting `zoom/webinardefault` +- Code quality: specify code coverage for tests #367 + +## v4.3.4 ## + +- Privacy: Add tests, support recordings, fix existing code #345 (thanks @jwalits, @tuanngocnguyen, @mattporritt, @marcghaly) +- Compatibility: grunt rebuild for MDL-73915 #364 + +## v4.3.3 ## + +- Fix recording table database schema definitions #358 (thanks @jwalits) +- Compatibility: Moodle upstream upgraded to php-jwt v6.0 #359 +- Renamed primary branch in GitHub to `main` #353 + +## v4.3.2 ## + +- Only cache successful Zoom user ID values #350 (thanks @merrill-oakland) +- Code quality: Align with moodle-local_codechecker v3.0.5 #351 + +## v4.3.1 ## + +- Fix database schema alignment and associated code #335 (thanks @TomoTsuyuki) +- Run "Update Meetings" task once per day by default #342 (thanks @deraadt for reporting) + - Note: You may need to manually adjust your task schedule on existing installs. + +## v4.3 ## + +- Add support for Zoom Cloud Recordings #292 (thanks @jwalits, @nstefanski, @abias, ETH Zürich) + - New setting `zoom/viewrecordings` + - New per activity setting `recordings_visible_default` +- Fix tracking field PHP notices #337 (thanks @alina-kiz, @ndunand, @haietza) + +## v4.2.1 ## + +- Fix PHP 8 deprecation warning #332 (thanks @ndunand) +- Fix duplicate column name on "All Meetings" page #330 + +## v4.2 ## + +- Add support for Zoom Tracking Fields #308 (thanks @haietza, @porcospino) + - New setting `zoom/defaulttrackingfields` +- Send plaintext version of Moodle intro to Zoom #290 (thanks @Ottendahl, @abias, @yanus for reporting) + - Note: To avoid losing Moodle's rich text, we no longer synchronize Zoom's topic back to Moodle. +- Reduce zoom_refresh_events overreach; fix 'quick edit' issue #320 (thanks @alina-kiz, @jwalits for testing) +- Add error handling and improve consistency in Zoom activity restore #328 (thanks @jonof) + +## v4.1.3 ## + +- Always use a fresh copy of start_url #316 (thanks @ShilVita for reporting) +- Synchronize calendar events consistently #319 (thanks @martinoesterreicher for reporting) +- Update JWT library to v5.4.0 #312 + +## v4.1.2 ## + +- Make loadmeeting consistent via web and mobile (event, completion, grade, etc) #307 (thanks @nstefanski) + +## v4.1.1 ## + +- Fix invitation class not found exception #296 (thanks @byvamo for reporting) + +## v4.1 ## + +- Allow configuration of Zoom identifier #280 (thanks @jwalits, @abias, @jonlan) + - New setting `zoom/apiidentifier` +- Allow configuration of Zoom API endpoint #293 (thanks @abias, @didier63) + - New setting `zoom/apiendpoint` +- Use case-insensitive email comparison for schedule_for #295 (thanks @stopfstedt, @briannwar) + +## v4.0 ## + +- Fully support recurring meetings #258 (thanks @abias, @jwalits, ETH Zürich) + - New setting `zoom/invitationremoveicallink` + - Backward incompatible change: exported iCal events now match Moodle's uid format +- Retroactively fix database schema defaults #291 (thanks @foxlapinou for reporting) + +## v3.8.1 ## + +- Only allow real host to use start_url #285 (thanks @abias for reporting) + +## v3.8 ## + +- Add support for Ionic 5 #269 (thanks @dpalou) +- Improve update_meetings scheduled task #263 (thanks @abias) +- Re-enable mustache continuous integration #276 +- Treat alternative hosts as a possible host #275 +- Update `exists_on_zoom` consistently #273 (thanks @abias for reporting) +- Update `timemodified` only when needed #279 (thanks @abias for reporting) +- Fix meeting invitation issues #267, #274 (thanks @abias, @nstefanski, @andrewmadden for feedback) + +## v3.7 ## + +- Allow administrators to selectively remove Meeting Invitation details #235 (thanks @andrewmadden) + - New capabilities `mod/zoom:viewjoinurl` and `mod/zoom:viewdialin` +- Track completion for mobile users #238 (thanks @nstefanski, @tzerafnx) +- Fix backup and restore of several zoom activity-level fields #247 (thanks @abias) +- Fix meeting reports task for some already-numeric end times #236 (thanks @lcollong) +- Fix list of alternative hosts to only include active users #252 (thanks @abias) +- Fix PHP 7.1 compatibility issue #243 +- Fix encryption type validation #232 (thanks @abias) +- Clean up error messages / efficiency on the view page #245 (thanks @abias) + +## v3.6 ## + +- Fixed fatal regression on settings.php for Moodle < 3.7 (Thanks abias) +- Fixed debugging messages that occur for users without webinar licenses +- Various string improvements + +## v3.5 ## + +- Removed language translations. Please submit language translations to AMOS (https://lang.moodle.org/) +- Fixed bug causing downloading of meeting participation reports to fail +- Added new settings for E2EE, Webinars, Alternative hosts, Download iCal, + Meeting capacity warning, and Enable meeting links (Thanks abias) +- Improved UI for admin and module settings (Thanks abias) +- Support for admins to update Zoom meeting participation reports +- Quick editing Zoom meeting name will now update calendar event +- Support for more advanced passcode requirements +- This will be the last supported release by UCLA. This plugin will now be maintained by jrchamp and NC State DELTA. + +## v3.4 ## + +- Used Dashboard API to improve get_meeting_reports task +- Added meeting invite text to calendar and meeting page to provide phone details +- Zoom meetings now appear in Timeline block (Thanks nstefanski) +- Added basic Analytic indicators (Thanks danmarsden) +- Fixed calendar icon not showing up for non-Boost themes (Thanks danowar2k) +- Added support for Moodle 3.10 +- Allow privileged users without Zoom to edit meetings (Thanks jrchamp) +- Fixed bugs related to scheduler support (Thanks jrchamp) +- Fixed participant count for meeting sessions so it only counts unique users +- Zoom descriptions keep HTML formatting (Thanks mhughes2k) +- Fixed failing DB schema checks (Thanks dvdcastro) +- Requiring passcodes is now a site wide configuration + +## v3.3 ## + +- Fixed problems with error handling (Thanks kbowlerarden and jrchamp) +- Added language translations for uk, pl, and ru (Thanks mkikets99) +- Thanks to kubilayagi for all his work on the Zoom plugin these past 2.5 years and good luck on future endeavors + +## v3.2 ## + +- Password/Passcode changes + - Renamed passwords to passcodes + - Added passcodes to Webinars (Thanks jrchamp) + - Passcodes are now required +- Implement completion viewed when user joins meeting (Thanks nstefanski) +- License recycling improvement (Thanks mrvinceo) +- Added scheduler support (Thanks mhughes2k) +- Added support for Zoom API changes related to next_page_token and rate limiting +- Fixed error handling for non-English Zoom deployments +- Added Travis CI support + +## v3.1 ## + +- Added site config to mask participant data form appearing in reports (useful for sites that mask participant data, e.g., for HIPAA) (Thanks stopfstedt) + +## v3.0 ## + +- Support Retry-After header in Zoom API +- Supports longer Zoom meeting ids +- Added more meeting options: Mute upon entry, Enable waiting room, Only authenticated users. +- Changed to be Host/Participant video to off by default +- Meeting have passwords set by default +- Improvements to "Get meeting report" task to better handle data errors +- Removed "Attendee attention" column in participant report, because it has been removed by Zoom +- Added a new setting 'proxyurl' that can be used to set a proxy as hostname:port. This will be used for communication with the Zoom API (but not anywhere else in Moodle). (Thanks pefeigl) +- Fixed meeting dates during restore (Thanks nstefanski) +- Added German translation (Thanks pefeigl) + +## v2.2 ## + +- Resized svg icon (Thanks stopfstedt) +- Fixed error handling for 'User not found on this account' (Thanks nstefanski and tzerafnx) +- Incorrect return value for zoom_update_instance (Thanks jrchamp) +- Added global search support +- Fixed inconsistent "start_time" column (Thanks tuanngocnguyen) + +## v2.1 ## + +- Moodle 3.7 support (Thanks danmarsden) +- Privacy API support +- Moodle mobile support fixed for 3.5 (Thanks nstefanski) +- iCal generation +- Various bug fixes/improvements. + +## v2.0.1 ## + +- Fixing conflicts with Firebase\JWT library. If more conflicts are found, + please contact plugin maintainer to add to list in classes/webservice.php. + +## v2.0 ## + +- Updated to support Zoom API V2 +- Added SVG icon for resolution independence (Thanks rrusso) +- Additional logging +- License recycling (Thanks tigusigalpa) +- Participant reports improved (local storage and added attentiveness score) +- GDPR compliance +- Support for alternative hosts + +## v1.7 ## + +- Lang string BOM fix (Thanks roperto/tonyjbutler) +- Support for proxy servers (Thanks jonof) +- Improved handling of meetings not found on Zoom +- Exporting of session participants to xls +- Improved participants report +- Fixing coding issues + +## v1.6 ## + +- Addressed coding issues brought up by a MoodleRooms review done for CSUN. + +## v1.5 ## + +- Fixed upgrade issues with PostgreSQL + +## v1.4 ## + +- Added missing lang string for cache. +- Updated activity chooser help text. +- Added support for webinars. +- Fixing Unicode issues. + +## v1.3 ## + +- Fixed join before host option. +- Added Zoom user reports. +- Added connection status checking on settings page. + +## v1.2 ## + +- Allowing Zoom users to be found by other login types than just SSO. + +## v1.1 ## + +- Issue #1: allow underscores in API key and secret. +- Issue #2: Fix language strings to not use concatenation. +- Added support for "group members only". + +## v1.0 ## + +- Initial release diff --git a/README.md b/README.md index 47fe479b..88959e27 100644 --- a/README.md +++ b/README.md @@ -50,436 +50,3 @@ Optional functionality can be enabled by granting additional scopes: If you get "Access token is expired" errors, make sure the date/time on your server is properly synchronized with the time servers. - -## Changelog - -v5.1.5 - -- Bugfix: Add PNG/SVG calendar icon for Moodle 4.3 #558 (thanks @ScottVerbeek) -- Bugfix: Display user fullname in breakout room participant list #562 (thanks @mofetdanielsmolkin) -- Bugfix: Sort session report by start time #567 -- Code quality: Namespace CSS identifiers #560 (thanks @danielcifuentesopen) -- Code quality: Optimize SVGs #561 (thanks @jakearchibald for SVGOMG) -- Code quality: Remove long-forgotten todo PHPDoc tags causing warnings in moodle-cs v3.3.13 -- Regression: Registration field default was accidentally upgrading to null #565 (thanks @michael-milette) - - Introduced in v5.1.0 when fixing recording field definition. - -v5.1.4 - -- Bugfix: Avoid breaking completion defaults form in Moodle 4.3 #555 (thanks @opitz) -- Regression: 'Use' missing classes required for Moodle app #554 (thanks ramprakash k) - - Introduced in v5.1.1 when moving classes into namespaces. - -v5.1.3 - -- Bugfix: Allow editing a past Zoom meeting without changing the time #545 (thanks @davefoord, @tlock) -- Bugfix: Remove unused start_url field from the database #546 (thanks @ShilVita) -- Regression: "Recurring No Time" admin setting was defaulting to "Daily" #544 (thanks @easegill) - - Introduced in v4.9.0 when adding support for meeting registration. - -v5.1.2 - -- Bugfix: Skip redundant calendar permissions check #535 (thanks @danowar2k) -- Bugfix: Initialize scopes from cache to avoid TypeError #542 (thanks @foxlapinou) -- Regression: Restore exceptions were not being caught #537 - - Introduced in v5.1.1 when moving classes into namespaces. -- Code quality: Void test return types in moodle-cs v3.3.10 #536 - -v5.1.1 - -- Bugfix: Get all meeting recordings, not just the last occurrence #517 (thanks @LGPoly) -- Bugfix: Choose meeting reports API based on OAuth permissions #525 (thanks @xmontana) -- Bugfix: Get meeting reports based on end time #514 (thanks @xmontana) -- Bugfix: Stop showing dates for 'No Fixed Time' meetings #529 (thanks @Melle-Amu) -- Bugfix: Fix external class namespace #530 (thanks @danmarsden) -- Bugfix: Store recording types as language keys, not translated strings #516 -- Bugfix: Define testcase class properties (PHP 8.2) #522 -- Code quality: Align with Moodle's new moodle-extra ruleset #521 -- Code quality: Array syntax updates in moodle-cs v3.3.7 #524 -- Code quality: Test against Moodle 4.3 and PHP 8.2 #531 - -v5.1.0 - -- Feature: Show activity date/time directly on course page #509 (thanks @cdipe) -- Regression: Auto recording was forced off by default #505 (thanks @emmarichardson) - - Introduced in v4.7.0 when adding automatic recording settings. -- Bugfix: Validate meeting name length using Zoom's 200 character limit #512 (thanks @lcollong) -- Bugfix: Resolve database inconsistencies #505 (thanks @fabianbatioja, @foxlapinou) -- Bugfix: Skip grading/completion during pre-registration #507 (thanks @tbeachy) -- Bugfix: Correct error message handling #503 (thanks @jwalits) -- Bugfix: Provide prescribed Promise parameters #499 (thanks @fmido88) - -v5.0.0 - -- Backward incompatible: Drop support for JWT authentication (thanks @aspark21) - - Zoom requires everyone to use Server-to-Server OAuth by September 1, 2023 -- Backward incompatible: Require PHP 7.1+ (Moodle 3.7+) (thanks @rlaneIT) -- Backward incompatible: Drop Moodle 3.4 mobile support - -v4.10.3 - -- Bugfix: Also use proxy settings for OAuth token request #494 (thanks @adnbes) -- Bugfix: Clean up exception handling to avoid notice #482 (thanks @andremenrath) -- Bugfix: Avoid course/activity completion form overhead #481 (thanks @phette23) -- Regression: PHP 7.0 class constant visibility errors #495 (thanks @rlaneIT) - - Introduced in v4.10.1 when aligning with PSR-12 coding standards. - -v4.10.2 - -- Regression: Instructors were unable to edit Zoom activity completion defaults #479 (thanks @phette23) - - Introduced in v4.6.0 when adding breakout room support. -- Bugfix: Course reset now verifies that the Zoom checkbox is checked #483 (thanks @carlosalal) - -v4.10.1 - -- Bugfix: Stop showing finished events in My Overview block #451 (thanks @nstefanski) -- Bugfix: Automatically retry on TLS connection error #466 (thanks @lcollong) -- Bugfix: Allow restoring activiting that are missing `option_auto_recording` #470 (thanks @lexxkoto) -- Bugfix: Document that each Moodle install needs its own OAuth app #475 (thanks @DLM-unipd, @haietza) -- Bugfix: Check required scopes before caching OAuth token #475 (thanks @tbeachy) -- Code quality: Align with Moodle-compatible PSR-1 and PSR-12 rules #465 -- Special thanks to @rickbeasley for his contributions to this plugin and to the team. - -v4.10.0 - -- Feature: Option for redefine licenses to only affect users on 'this' Moodle server #436 (thanks @KepaUrzelai) - - New setting `zoom/instanceusers` -- Bugfix: Process recordings deletes one meeting at a time #439 (thanks @juanbrunetmf) -- Code quality: Use short array syntax (MDLSITE-4776) #447 -- Code quality: One space around assignment operators (MDLSITE-6594) #457 - -v4.9.2 - -- Bugfix: New meetings did not know which user to check for security settings #438 (thanks @haietza) -- Bugfix: Use select field so registration option saves correctly #448 (thanks @paulandm) -- Compatibility: grunt rebuild against Moodle 4.1 #446 - -v4.9.1 - -- Regression: Administrators without Zoom account were unable to edit #422 (thanks @juanbrunetmf) - - Introduced in v4.7.0 when adding automatic recording options. -- Bugfix: Respect host settings for meeting options and reduce unnecessary API calls #422 -- Bugfix: Always request JSON API responses and show error details #426 (thanks @sascha-serwe) -- Bugfix: Default start time should be in the future and be a multiple of 5 minutes #427 - -v4.9.0 - -- Feature: Allow Registration #412 (thanks @paulandm, @haietza, @MoleLR, @lcollong, @louisaoc) - - New setting `zoom/defaultregistration` - - New per activity setting `registration` -- Bugfix: Update meetings task was throwing an exception #421 (thanks @lexxkoto) -- Bugfix: Add missing cache definition language string #408 (thanks @aspark21) -- Bugfix: Use user-level meeting security configuration #408 - - Removed OAuth scope: `account:read:admin` -- Regression: Moodle < 3.4 does not support hideIf() - - Introduced in v3.5 of this plugin while tidying the form UI. - - Minimum required Moodle version officially increased to 3.4. - -v4.8.1 - -- Bugfix: Moodle 4 was displaying the activity description twice #417 (thanks @Laur0r, @haietza) -- Bugfix: Avoid HTTP/2 error when using Server-to-Server OAuth #418 (thanks @phette23) - -v4.8.0 - -- Feature: Support Server-to-Server OAuth app #387 (thanks @haietza, @mhughes2k) - - New settings `zoom/accountid`, `zoom/clientid`, `zoom/clientsecret` - - Reminder: You must [switch from JWT to Server-to-Server OAuth by June 2023](https://developers.zoom.us/docs/internal-apps/jwt-faq/). -- Regression: Locked settings were not being applied #407 (thanks @krab-stik) - - Introduced in v4.7.0 while adding support for automatic recording. - -v4.7.0 - -- Feature: Allow automatic recording #390 (thanks @aduranterres, @lcollong) - - New settings `zoom/recordingoption`, `zoom/allowrecordingchangeoption` - - New per activity setting `option_auto_recording` - - Known issue: Causes pre-existing events to turn off automatic recording when edited. -- Performance: Static caching of repeated API calls #402 (thanks @aduranterres) - -v4.6.2 - -- Regression: Rename mustache templates for backward compatibility #398 (thanks @PhilipBeacon) - - Introduced in v4.6.0 by new mustache templates in sub-directories (a Moodle 3.8 feature). -- Bugfix: Recognize the Webinar capabilities of a Zoom Events license #338 (thanks @dottbarbieri) -- Bugfix: Avoid PHP Warning when restoring Zoom activities without breakout room data #399 - -v4.6.1 - -- Bugfix: Avoid JavaScript error when 'Show More' button does not exist #392 (thanks @mwithheld) -- Bugfix: Add missing privacy coverage for breakout rooms; fix privacy data deletion #395 (thanks @hdagheda) - -v4.6.0 - -- Feature: Pre-assign Breakout Rooms #371 (thanks @annouarf, @levemar, University of Montreal, @mhughes2k) -- Bugfix: Validate start times and duration for timed recurring meetings #389 (thanks @nchan31, @jwalits) - -v4.5.3 - -- Bugfix: Allow plugin settings to update without a configuration exception #386 (thanks @acquaalta) - -v4.5.2 - -- Regression: Avoid requiring paid accounts for meeting default settings #383 (thanks @nstefanski, @nickchen, @valeriy67, @obook) - - Introduced in v3.5 to determine passcode requirements. -- Bugfix: Allow course restore to complete even when Zoom is not fully configured #378 -- Code quality: Require PHPUnit to pass without warnings #379 - -v4.5.1 - -- Regression: Fix Zoom activity icon visibility #375 (thanks @foxlapinou) -- Compatibility: Fix PHPUnit deprecation warnings #373 - -v4.5.0 - -- Feature: Support for Reset course functionality #370 (thanks @izendegi) -- Compatibility: Improved support for Moodle 4.0 #369 - -v4.4.0 - -- Feature: Allow configuration of section visibility on the view page #363 (thanks @aduranterres, @rayjbarrett1) - - New settings `zoom/defaultshowschedule`, `zoom/defaultshowsecurity`, `zoom/defaultshowmedia` - - New per activity settings `show_schedule`, `show_security`, `show_media` -- Feature: Allow administrator to set webinar by default (when available) #367 (thanks @marcellobarile) - - New setting `zoom/webinardefault` -- Code quality: specify code coverage for tests #367 - -v4.3.4 - -- Privacy: Add tests, support recordings, fix existing code #345 (thanks @jwalits, @tuanngocnguyen, @mattporritt, @marcghaly) -- Compatibility: grunt rebuild for MDL-73915 #364 - -v4.3.3 - -- Fix recording table database schema definitions #358 (thanks @jwalits) -- Compatibility: Moodle upstream upgraded to php-jwt v6.0 #359 -- Renamed primary branch in GitHub to `main` #353 - -v4.3.2 - -- Only cache successful Zoom user ID values #350 (thanks @merrill-oakland) -- Code quality: Align with moodle-local_codechecker v3.0.5 #351 - -v4.3.1 - -- Fix database schema alignment and associated code #335 (thanks @TomoTsuyuki) -- Run "Update Meetings" task once per day by default #342 (thanks @deraadt for reporting) - - Note: You may need to manually adjust your task schedule on existing installs. - -v4.3 - -- Add support for Zoom Cloud Recordings #292 (thanks @jwalits, @nstefanski, @abias, ETH Zürich) - - New setting `zoom/viewrecordings` - - New per activity setting `recordings_visible_default` -- Fix tracking field PHP notices #337 (thanks @alina-kiz, @ndunand, @haietza) - -v4.2.1 - -- Fix PHP 8 deprecation warning #332 (thanks @ndunand) -- Fix duplicate column name on "All Meetings" page #330 - -v4.2 - -- Add support for Zoom Tracking Fields #308 (thanks @haietza, @porcospino) - - New setting `zoom/defaulttrackingfields` -- Send plaintext version of Moodle intro to Zoom #290 (thanks @Ottendahl, @abias, @yanus for reporting) - - Note: To avoid losing Moodle's rich text, we no longer synchronize Zoom's topic back to Moodle. -- Reduce zoom_refresh_events overreach; fix 'quick edit' issue #320 (thanks @alina-kiz, @jwalits for testing) -- Add error handling and improve consistency in Zoom activity restore #328 (thanks @jonof) - -v4.1.3 - -- Always use a fresh copy of start_url #316 (thanks @ShilVita for reporting) -- Synchronize calendar events consistently #319 (thanks @martinoesterreicher for reporting) -- Update JWT library to v5.4.0 #312 - -v4.1.2 - -- Make loadmeeting consistent via web and mobile (event, completion, grade, etc) #307 (thanks @nstefanski) - -v4.1.1 - -- Fix invitation class not found exception #296 (thanks @byvamo for reporting) - -v4.1 - -- Allow configuration of Zoom identifier #280 (thanks @jwalits, @abias, @jonlan) - - New setting `zoom/apiidentifier` -- Allow configuration of Zoom API endpoint #293 (thanks @abias, @didier63) - - New setting `zoom/apiendpoint` -- Use case-insensitive email comparison for schedule_for #295 (thanks @stopfstedt, @briannwar) - -v4.0 - -- Fully support recurring meetings #258 (thanks @abias, @jwalits, ETH Zürich) - - New setting `zoom/invitationremoveicallink` - - Backward incompatible change: exported iCal events now match Moodle's uid format -- Retroactively fix database schema defaults #291 (thanks @foxlapinou for reporting) - -v3.8.1 - -- Only allow real host to use start_url #285 (thanks @abias for reporting) - -v3.8 - -- Add support for Ionic 5 #269 (thanks @dpalou) -- Improve update_meetings scheduled task #263 (thanks @abias) -- Re-enable mustache continuous integration #276 -- Treat alternative hosts as a possible host #275 -- Update `exists_on_zoom` consistently #273 (thanks @abias for reporting) -- Update `timemodified` only when needed #279 (thanks @abias for reporting) -- Fix meeting invitation issues #267, #274 (thanks @abias, @nstefanski, @andrewmadden for feedback) - -v3.7 - -- Allow administrators to selectively remove Meeting Invitation details #235 (thanks @andrewmadden) - - New capabilities `mod/zoom:viewjoinurl` and `mod/zoom:viewdialin` -- Track completion for mobile users #238 (thanks @nstefanski, @tzerafnx) -- Fix backup and restore of several zoom activity-level fields #247 (thanks @abias) -- Fix meeting reports task for some already-numeric end times #236 (thanks @lcollong) -- Fix list of alternative hosts to only include active users #252 (thanks @abias) -- Fix PHP 7.1 compatibility issue #243 -- Fix encryption type validation #232 (thanks @abias) -- Clean up error messages / efficiency on the view page #245 (thanks @abias) - -v3.6 - -- Fixed fatal regression on settings.php for Moodle < 3.7 (Thanks abias) -- Fixed debugging messages that occur for users without webinar licenses -- Various string improvements - -v3.5 - -- Removed language translations. Please submit language translations to AMOS (https://lang.moodle.org/) -- Fixed bug causing downloading of meeting participation reports to fail -- Added new settings for E2EE, Webinars, Alternative hosts, Download iCal, - Meeting capacity warning, and Enable meeting links (Thanks abias) -- Improved UI for admin and module settings (Thanks abias) -- Support for admins to update Zoom meeting participation reports -- Quick editing Zoom meeting name will now update calendar event -- Support for more advanced passcode requirements -- This will be the last supported release by UCLA. This plugin will now be maintained by jrchamp and NC State DELTA. - -v3.4 - -- Used Dashboard API to improve get_meeting_reports task -- Added meeting invite text to calendar and meeting page to provide phone details -- Zoom meetings now appear in Timeline block (Thanks nstefanski) -- Added basic Analytic indicators (Thanks danmarsden) -- Fixed calendar icon not showing up for non-Boost themes (Thanks danowar2k) -- Added support for Moodle 3.10 -- Allow privileged users without Zoom to edit meetings (Thanks jrchamp) -- Fixed bugs related to scheduler support (Thanks jrchamp) -- Fixed participant count for meeting sessions so it only counts unique users -- Zoom descriptions keep HTML formatting (Thanks mhughes2k) -- Fixed failing DB schema checks (Thanks dvdcastro) -- Requiring passcodes is now a site wide configuration - -v3.3 - -- Fixed problems with error handling (Thanks kbowlerarden and jrchamp) -- Added language translations for uk, pl, and ru (Thanks mkikets99) -- Thanks to kubilayagi for all his work on the Zoom plugin these past 2.5 years and good luck on future endeavors - -v3.2 - -- Password/Passcode changes - - Renamed passwords to passcodes - - Added passcodes to Webinars (Thanks jrchamp) - - Passcodes are now required -- Implement completion viewed when user joins meeting (Thanks nstefanski) -- License recycling improvement (Thanks mrvinceo) -- Added scheduler support (Thanks mhughes2k) -- Added support for Zoom API changes related to next_page_token and rate limiting -- Fixed error handling for non-English Zoom deployments -- Added Travis CI support - -v3.1 - -- Added site config to mask participant data form appearing in reports (useful for sites that mask participant data, e.g., for HIPAA) (Thanks stopfstedt) - -v3.0 - -- Support Retry-After header in Zoom API -- Supports longer Zoom meeting ids -- Added more meeting options: Mute upon entry, Enable waiting room, Only authenticated users. - Changed to be Host/Participant video to off by default -- Meeting have passwords set by default -- Improvements to "Get meeting report" task to better handle data errors -- Removed "Attendee attention" column in participant report, because it has been removed by Zoom -- Added a new setting 'proxyurl' that can be used to set a proxy as hostname:port. This will be used for communication with the Zoom API (but not anywhere else in Moodle). (Thanks pefeigl) -- Fixed meeting dates during restore (Thanks nstefanski) -- Added German translation (Thanks pefeigl) - -v2.2 - -- Resized svg icon (Thanks stopfstedt) -- Fixed error handling for 'User not found on this account' (Thanks nstefanski and tzerafnx) -- Incorrect return value for zoom_update_instance (Thanks jrchamp) -- Added global search support -- Fixed inconsistent "start_time" column (Thanks tuanngocnguyen) - -v2.1 - -- Moodle 3.7 support (Thanks danmarsden) -- Privacy API support -- Moodle mobile support fixed for 3.5 (Thanks nstefanski) -- iCal generation -- Various bug fixes/improvements. - -v2.0.1 - -- Fixing conflicts with Firebase\JWT library. If more conflicts are found, - please contact plugin maintainer to add to list in classes/webservice.php. - -v2.0 - -- Updated to support Zoom API V2 -- Added SVG icon for resolution independence (Thanks rrusso) -- Additional logging -- License recycling (Thanks tigusigalpa) -- Participant reports improved (local storage and added attentiveness score) -- GDPR compliance -- Support for alternative hosts - -v1.7 - -- Lang string BOM fix (Thanks roperto/tonyjbutler) -- Support for proxy servers (Thanks jonof) -- Improved handling of meetings not found on Zoom -- Exporting of session participants to xls -- Improved participants report -- Fixing coding issues - -v1.6 - -- Addressed coding issues brought up by a MoodleRooms review done for CSUN. - -v1.5 - -- Fixed upgrade issues with PostgreSQL - -v1.4 - -- Added missing lang string for cache. -- Updated activity chooser help text. -- Added support for webinars. -- Fixing Unicode issues. - -v1.3 - -- Fixed join before host option. -- Added Zoom user reports. -- Added connection status checking on settings page. - -v1.2 - -- Allowing Zoom users to be found by other login types than just SSO. - -v1.1 - -- Issue #1: allow underscores in API key and secret. -- Issue #2: Fix language strings to not use concatenation. -- Added support for "group members only". - -v1.0 - -- Initial release diff --git a/upgrade.txt b/upgrade.txt new file mode 100644 index 00000000..07d1ed53 --- /dev/null +++ b/upgrade.txt @@ -0,0 +1,81 @@ +== v5.0.0 == + +- Drop support for JWT authentication +- Require PHP 7.1+ (Moodle 3.7+) +- Drop Moodle 3.4 mobile support + +== v4.10.0 == + +- New setting `zoom/instanceusers` + +== v4.9.0 == + +- New setting `zoom/defaultregistration` +- New per activity setting `registration` +- Removed OAuth scope: `account:read:admin` + +== v4.8.0 == + +- New settings `zoom/accountid`, `zoom/clientid`, `zoom/clientsecret` +- Reminder: You must [switch from JWT to Server-to-Server OAuth by June 2023](https://developers.zoom.us/docs/internal-apps/jwt-faq/). + +== v4.7.0 == + +- New settings `zoom/recordingoption`, `zoom/allowrecordingchangeoption` +- New per activity setting `option_auto_recording` + +== v4.4.0 == + +- New settings `zoom/defaultshowschedule`, `zoom/defaultshowsecurity`, `zoom/defaultshowmedia` +- New per activity settings `show_schedule`, `show_security`, `show_media` +- New setting `zoom/webinardefault` + +== v4.3 == + +- New setting `zoom/viewrecordings` +- New per activity setting `recordings_visible_default` + +== v4.2 == + +- New setting `zoom/defaulttrackingfields` + +== v4.1 == + +- New setting `zoom/apiidentifier` +- New setting `zoom/apiendpoint` + +== v4.0 == + +- New setting `zoom/invitationremoveicallink` +- Backward incompatible: exported iCal events now match Moodle's uid format + +== v3.7 == + +- New capabilities `mod/zoom:viewjoinurl` and `mod/zoom:viewdialin` + +== v3.5 == + +- Added new settings for E2EE, Webinars, Alternative hosts, Download iCal, + Meeting capacity warning, and Enable meeting links + +== v3.4 == + +- Requiring passcodes is now a site wide configuration + +== v3.1 == + +- Added site config to mask participant data from appearing in reports (useful for sites that mask participant data, e.g., for HIPAA) + +== v3.0 == + +- Added more meeting options: Mute upon entry, Enable waiting room, Only authenticated users. +- Added a new setting 'proxyurl' that can be used to set a proxy as hostname:port. + +== v2.0 == + +- Updated to support Zoom API V2 +- Support for alternative hosts + +== v1.4 == + +- Added support for webinars.