diff --git a/lib/editor/tiny/plugins/autosave/classes/external/reset_autosave_session.php b/lib/editor/tiny/plugins/autosave/classes/external/reset_autosave_session.php index bcf7e4ff4cc..cc5a989c02b 100644 --- a/lib/editor/tiny/plugins/autosave/classes/external/reset_autosave_session.php +++ b/lib/editor/tiny/plugins/autosave/classes/external/reset_autosave_session.php @@ -62,7 +62,6 @@ class reset_autosave_session extends external_api { string $pageinstance, string $elementid ): array { - global $DB, $USER; [ 'contextid' => $contextid, @@ -77,8 +76,11 @@ class reset_autosave_session extends external_api { ]); - $manager = new \tiny_autosave\autosave_manager($contextid, $pagehash, $pageinstance, $elementid); - $manager->remove_autosave_record(); + // May have been called by a non-logged in user. + if (isloggedin() && !isguestuser()) { + $manager = new \tiny_autosave\autosave_manager($contextid, $pagehash, $pageinstance, $elementid); + $manager->remove_autosave_record(); + } return []; } diff --git a/lib/editor/tiny/plugins/autosave/classes/external/resume_autosave_session.php b/lib/editor/tiny/plugins/autosave/classes/external/resume_autosave_session.php index e3a6cccb1f0..b916cafce73 100644 --- a/lib/editor/tiny/plugins/autosave/classes/external/resume_autosave_session.php +++ b/lib/editor/tiny/plugins/autosave/classes/external/resume_autosave_session.php @@ -71,7 +71,6 @@ class resume_autosave_session extends external_api { string $elementid, ?int $draftid ): array { - global $DB, $USER; [ 'contextid' => $contextid, @@ -87,10 +86,15 @@ class resume_autosave_session extends external_api { 'draftid' => $draftid, ]); - $manager = new \tiny_autosave\autosave_manager($contextid, $pagehash, $pageinstance, $elementid); - $sessiondata = $manager->resume_autosave_session($draftid); + $drafttext = ''; + + // May have been called by a non-logged in user. + if (isloggedin() && !isguestuser()) { + $manager = new \tiny_autosave\autosave_manager($contextid, $pagehash, $pageinstance, $elementid); + $drafttext = $manager->resume_autosave_session($draftid)->drafttext; + } return [ - 'drafttext' => $sessiondata->drafttext, + 'drafttext' => $drafttext, ]; } diff --git a/lib/editor/tiny/plugins/autosave/classes/external/update_autosave_session_content.php b/lib/editor/tiny/plugins/autosave/classes/external/update_autosave_session_content.php index cc27117f62e..434834bd2cb 100644 --- a/lib/editor/tiny/plugins/autosave/classes/external/update_autosave_session_content.php +++ b/lib/editor/tiny/plugins/autosave/classes/external/update_autosave_session_content.php @@ -65,7 +65,6 @@ class update_autosave_session_content extends external_api { string $elementid, string $drafttext ): array { - global $DB, $USER; [ 'contextid' => $contextid, @@ -81,8 +80,11 @@ class update_autosave_session_content extends external_api { 'drafttext' => $drafttext, ]); - $manager = new \tiny_autosave\autosave_manager($contextid, $pagehash, $pageinstance, $elementid); - $manager->update_autosave_record($drafttext); + // May have been called by a non-logged in user. + if (isloggedin() && !isguestuser()) { + $manager = new \tiny_autosave\autosave_manager($contextid, $pagehash, $pageinstance, $elementid); + $manager->update_autosave_record($drafttext); + } return []; } diff --git a/lib/editor/tiny/plugins/autosave/db/services.php b/lib/editor/tiny/plugins/autosave/db/services.php index 8f62857f83e..44316e8f507 100644 --- a/lib/editor/tiny/plugins/autosave/db/services.php +++ b/lib/editor/tiny/plugins/autosave/db/services.php @@ -30,6 +30,7 @@ $functions = [ 'methodname' => 'execute', 'description' => 'Resume an autosave session', 'type' => 'write', + 'loginrequired' => false, 'ajax' => true, ), 'tiny_autosave_reset_session' => array( @@ -37,6 +38,7 @@ $functions = [ 'methodname' => 'execute', 'description' => 'Reset an autosave session', 'type' => 'write', + 'loginrequired' => false, 'ajax' => true, ), 'tiny_autosave_update_session' => array( @@ -44,6 +46,7 @@ $functions = [ 'methodname' => 'execute', 'description' => 'Update an autosave session', 'type' => 'write', + 'loginrequired' => false, 'ajax' => true, ), ]; diff --git a/lib/editor/tiny/plugins/autosave/version.php b/lib/editor/tiny/plugins/autosave/version.php index b3d50c06c2e..6e56a805029 100644 --- a/lib/editor/tiny/plugins/autosave/version.php +++ b/lib/editor/tiny/plugins/autosave/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2023100900; +$plugin->version = 2023100901; $plugin->requires = 2023100400; $plugin->component = 'tiny_autosave';