This introduces a new "controlled link" file type where the file is not
stored in Moodle - but Moodle will control the access permissions on the file.
Plugins can "freeze" a filearea which means Moodle will take ownership of all the remote
files of this type.
When accessing a file, if the "filebrowser" infomation indicates the current user can write to the file, they
will be granted temporary write access.
Part of MDL-58220
Until now in the get_assignments WS all the settings for assignment
plugins (submission and feedback) are returned, this was bad because:
- It was returning settings for plugins that may not be enabled
- It was returning settings that would be a security risk (a third
party plugin including a password or credentials for connecting a
remote site)
- Some values was returned "raw" without further processing, for
example, maxsubmissionsizebytes returned 0 when using the plugin
default value instead a valid size
- Assignment plugins implemented an API for communication with the
external API, see for example: get_external_parameters, it didn’t make
sense had an API for the received parameters and not the returned data.
This patch adds lots of webservices to the assignment module.
* mod_assign_revert_submissions_to_draft
* mod_assign_lock_submissions
* mod_assign_unlock_submissions
* mod_assign_save_submission
* mod_assign_submit_for_grading
* mod_assign_save_grade
* mod_assign_save_user_extensions
* mod_assign_reveal_identities
* mod_assign_copy_previous_attempt
All features such as reopening attempts and marking workflow are supported through
the save_grade and save_submission functions.
Uploading files is supported by sending draft item ids for the files_filemanager param the same functions.
When group submissions and blind marking are enabled, an error is thrown
when a teacher trys to download all submissions in a zip. The fix is to
move the url rewriting from the plugin to the assign class so it is
done in a standard way by all modules. The rewriting is done to make images
in a text editor field resolve correctly.
This was preventing the view full submission/feedback link from appearing
everywhere in the assignment when the submission/feedback content had been
truncated in the summary because it was too long (or too many files)