83 Commits

Author SHA1 Message Date
Jake Dallimore
85679c47da
MDL-78597 mod_lti: let content item callbacks obey preconfigured cap
Users without the 'mod/lti:addpreconfiguredinstance' capability won't be
able to see any mod_lti content items in the activity chooser.
Note: this patch doesn't address the underlying locallib method,
lti_get_lti_types_by_course(), which will be addressed elsewhere.
2023-08-29 13:06:48 +08:00
Jake Dallimore
ca10084639
MDL-78597 mod_lti: remove the ability to add manual instances of tools
In summary:
- Remove the 'External tool' item from get_course_content_items()
hook, which results in its removal from the activity chooser.
- Remove the 'External tool' item from get_all_content_items() hook,
which results in its removal from the admin activity chooser
recommendations page.
- Prevent use of the edit_form for creation of new manual instances.
- Retain the ability to edit existing manual instances.
- Fix tests expecting external tool.
2023-08-29 13:06:48 +08:00
Jake Dallimore
1e886c375c
MDL-78753 mod_lti: fix access control for LTI External tools page
To view this page, the user must be able to use preconfigred tools in
the course. This is controlled by the 'mod/lti:addpreconfiguredinstance'
capability. The capability 'mod/lti:addcoursetool' isn't required to
view the page but does add extra functionality to the page.
2023-08-15 18:03:43 +07:00
Jake Dallimore
a8f496e48e
MDL-78575 mod_lti: add course tools page to course
Uses a reportbuilder report to display course tools.
2023-07-14 11:00:29 +08:00
Marina Glancy
b0a83aa7bd MDL-76362 various: Avoid passing nulls to functions that don't allow nulls
PHP 8.1 is more strict on the parameter type. Functions such as trim(), strlen(), str_replace(), etc
show notice when null is passed as an argument
2023-01-23 09:15:54 +08:00
Mihail Geshoski
6a122984da MDL-68011 course: Final deprecation of the callback get_shortcuts()
Removal of the callback get_shortcuts() and its plugin implementations.
The private methods in the content_item_readonly_repository class
which were only used by the callback hook logic are also removed.
2022-07-19 14:13:36 +08:00
Andrew Nicols
4b388fc239 MDL-74235 core: Update core uses of activity icons to monologo 2022-04-07 12:56:14 +08:00
Bas Brands
f2ddd23ec1 MDL-71457 theme_boost: activity icon styling 2021-12-20 15:02:24 +01:00
Eloy Lafuente (stronk7)
432b9a9075 MDL-69521 core: Move all comments in code from 4.3 to 4.1 2020-09-08 18:59:46 +02:00
Claude Vervoort
cfbc361dd6 MDL-65306 mod_lti: remove direct coupling to subplugin 2020-04-24 15:30:27 -04:00
Claude Vervoort
e5423ddb93 MDL-65306 mod_lti: fix deeplinking support for tag and resourceid 2020-04-24 15:30:26 -04:00
Jake Dallimore
57dfcf951d MDL-67585 core_course: add hook get_all_content_items
Returns all content items which are provided by the plugin, irrespective
of whether or not a user can see an item in a particular course. This is
used to generate a global list of content items, allowing for admin
level features to be added.
2020-02-20 11:42:22 +08:00
Jake Dallimore
520add19d6 MDL-67585 core_course: deprecate the callback get_shortcuts()
This involves a few changes:
- The callback is still called by the repository but only if the
replacement callback get_course_content_items is not implemented.
- Debugging is called when the get_shortcuts callback is called.
- We leave lti's implementation of get_shortcuts alone, in order to
maintain the output of get_module_metadata during its deprecation life
span.
2020-02-20 11:42:21 +08:00
Jake Dallimore
8fc7d83f38 MDL-67585 core_course: add get_course_content_items hook
Plugins use this to report which content items relate to a user in
a course.
2020-02-20 09:28:57 +08:00
Davo Smith
477e87170b MDL-62815 mod_lti: adjust new capabilities
MDL-62815 mod_lti: improve lang strings + use clonepermissionsfrom

MDL-62815 mod_lti: prevent changing from manual instance without cap
2020-01-08 09:45:05 +00:00
yair.spielmann
e3b82acdc1 MDL-62815 mod_lti: Capabilities for adding default and preconfigured 2020-01-08 09:45:05 +00:00
Amaia Anabitarte
c0375ba73f MDL-66369 libraries: Remove [modname]_scale_used functions
These functions were only used by the deprecated function
which was deprecated in 3.1, and removed in 3.6.
2019-08-16 11:56:17 +08:00
Shamim Rezaie
58182fa833 MDL-63144 mod_lti: Add userid param to mod_lti calendar callbacks 2019-03-07 17:48:17 +11:00
Shamim Rezaie
70e7f3b9ba MDL-63144 mod_lti: Check if the module is visible to the user 2019-03-07 17:38:01 +11:00
Damyon Wiese
40fe153816 MDL-64878 grades: Update delete_instance
When grades are deleted, it needs to know the context so any files
in the gradebook can be deleted. This means module delete_instance
functions must delete the grade_item before they delete the module record.
2019-02-27 10:37:54 +08:00
Tim Hunt
939218c2b6 MDL-46783 permissions: let some moodle/ caps be overriden in all mods
The capabilities changed ('contextlevel' => CONTEXT_COURSE changed to
'contextlevel' => CONTEXT_MODULE) are:

* moodle/site:accessallgroups
* moodle/site:viewfullnames
* moodle/site:trustcontent
* moodle/site:viewuseridentity

This list came from reviewing the _get_extra_capabilities functions in
all core activities. They were all somewhat inconsistent, but I think it
makes sense that these capabilities are consistently overridable in all
activities. E.g. moodle/site:accessallgroups affects conditional
availability even if there is no other user of groups, and
moodle/site:viewuseridentity and moodle/site:viewfullnames affect the
logs report, if nothing else.

As a result of this, several _get_extra_capabilities functions are no
longer needed, and all the rest have been simplified.
2018-12-05 16:44:25 +00:00
Adrian Greeve
4bebed4011 MDL-53697 mod: Final deprecation of xxx_get_types(). 2018-07-12 10:19:09 +08:00
Jakob Ackermann
4d5a33e424 MDL-60187 mod_lti: Do not create a grade item when grades are disabled.
If the privacy option "Accept grades from the tool" is disabled, the
module should not appear in the gradebook when edited inline or when
recover grades is running during enrolment.
2017-11-20 15:13:24 +08:00
Marina Glancy
50d845e3ed MDL-58665 dashboard: use bigger course object for completion
class completion_info will make an extra DB query to retrieve the course if course->enablecompletion is not present
2017-05-01 16:59:07 +08:00
Mark Nelson
59391e80ad MDL-58501 mod_*: improved docs for new calendar callbacks 2017-04-12 17:43:52 +08:00
Mark Nelson
01f96180ff MDL-58504 mod_*: fixed PHPDoc return type for *_provide_event_action 2017-04-06 15:00:02 +08:00
Dan Poltawski
1e4e5c52d7 Merge branch 'MDL-55611-master' of git://github.com/danpoltawski/moodle 2017-04-04 17:07:41 +01:00
Mark Nelson
e1cd93ce20 MDL-58423 core_calendar: moved \core_calendar\event class
Part of MDL-55611 epic.
2017-04-04 11:01:49 +01:00
Mark Nelson
b3bd7a66a0 MDL-57878 mod_*: added inclusion of completion event and callbacks
Part of MDL-55611 epic.
2017-04-03 11:37:09 +08:00
Juan Leyva
0a34838725 MDL-57411 course: Return modules updates for teachers 2017-04-01 19:39:02 +02:00
David Monllao
e11d2d87ff Merge branch 'MDL-37168-master' of https://github.com/xow/moodle 2017-03-20 10:15:36 +01:00
Sam Chaffee
77a827e14d MDL-37168 mod_lti: Fix LTI activity quick edit title 2017-03-20 16:02:11 +08:00
Damyon Wiese
ad056aa267 MDL-40759 icons: Better mapping of some icons 2017-03-17 15:52:18 +08:00
Damyon Wiese
2b931458ad MDL-40759 plugins: Add font icon mapping to all plugins 2017-03-17 15:51:29 +08:00
Juan Leyva
65b2669d98 MDL-56307 course: Return time updated and times updated 2016-10-25 10:10:55 +01:00
Juan Leyva
02a73d767c MDL-56307 course: New course_check_module_updates_since method 2016-10-25 10:10:52 +01:00
Ben Kelada
b346737e75 MDL-47113 lti: Add link to open in new window, when popup blocked 2016-06-20 14:39:39 +08:00
Jake Dallimore
f418d89957 MDL-54128 mod_lti: Add help for custom LTI tools in activity picker 2016-05-16 10:07:29 +08:00
John Okely
af9d3a923d MDL-52154 mod_lti: Add tests and lang strings and finalise API 2016-04-27 13:15:33 +08:00
Ryan Wyllie
cc193e0d1d MDL-52154 mod_lti: Improve admin interface
Created a new admin page for managing LTI tool types within
Moodle. The new page streamlines adding a new tool and allows
the admin to add a tool using either a cartridge or a registration
URL.
2016-04-26 15:13:44 +08:00
John Okely
8aec804af2 MDL-52154 mod_lti: Add cartridge support to LTI 2016-04-26 15:13:44 +08:00
Marina Glancy
2348c13732 MDL-45064 mod_lti: use callback get_shortcuts()
deprecate callback for ltisource plugins get_types(), instead introduce
get_shortcuts()
2016-04-13 08:30:05 +08:00
John Okely
01e8bfd745 MDL-45064 lti: LTI types in activity chooser 2016-04-13 08:30:04 +08:00
David Mudrák
496bf3ea16 MDL-53351 lti: Do not throw PHP notice when deleting LTI instance
The typeid=0 is a valid and common value representing "Automatic, based
on launch URL" type. In that case, no record in the lti_types table is
found. Thence attempting to access its toolproxyid property used to
throw PHP notice.
2016-03-04 16:42:05 +01:00
Juan Leyva
4bed1682bb MDL-51624 mod_lti: New Web Service mod_lti_view_lti 2015-10-07 14:54:18 +02:00
Sam Chaffee
4180d9706b MDL-50947 mod_lti Remove deprecated grade.php 2015-08-11 10:30:06 -06:00
spvickers
3f35882825 MDL-49629 mod_lti: Add icon fields
Icon fields added to input form when defining an external tool at the
admin level.  The icon for a tool derived from a tool proxy can be
overridden.  Course cache is cleared if current icon value is changed.

Add text boxes to edit form for entering icon URLs.
2015-07-18 12:02:04 -04:00
spvickers
e3f69b58a2 MDL-45843 mod_lti: introduced support to LTI 2.0
This commit introduces support to the LTI module for LTI 2.0.
As well as the initial commit the following changes were made
and then squashed into the single commit for integration:

* Fixed bug in services
  Fixed bug which limited characters allowed in values of template
  variables (e.g. vendor ID) in service endpoints.
  Changed language file to refer to tool registrations rather than
  tool proxies.

* Refactored service classes
  Moved classes relating to services into areas where Moodle will
  autoload them

* Ran code through code checker
  Removed all errors reported by the Code checker module
  excluding third-party OAuth.php file.

* UI improvements
  Mainly when adding an external tool to a course - fields which
  should not be changed for a selected tool are either hidden or
  disabled. Admin settings page now shows the Tool Registration
  name against a tool rather than the launch URL, and the
  registration URL replaces the GUID on the tool registrations
  page.

* Updated tool proxy registration
  Added check of tool proxy to ensure only offered capabilities
  and services are included.  Also check tool proxy when processing
  a service request.

* Code review changes
  Some fixes based on code review by Mark Nielsen and addition of
  some PHPDocs comments.

* Updates from code/PHPdocs checks
  Removed use of eval and corrected invalid PHPdocs for new
  functions/classes

* Corrected namespace error and incorrect string terminator

* Updates based on forum feedback
  Added dependencies and backup, restore and uninstall methods for
  ltiservice subplugins.
  Changed most uses of is_null to empty

* Updated custom parameters test
  Updated test_split_custom_parameters to include new function
  parameters.
  Corrected PHPdoc entry for lti_split_custom_parameters
  Fixed incorrect line separators in ltiservice.php

* Added require_capability to registrationreturn.php

* SQL and EOL updates
  Moved PHP variable in SQL into a named parameter
  Improved checks for end-of-line characters to include CR and LF
  on their own or together

* Check for semicolon separators
  Semicolon separators in custom parameters are changed to EOL
  characters when upgrading to the 2014100100 version.

* Remove unused file
  basiclti.js file not being used so removed.

* Adjust line lengths
  Split long lines in upgrade.php

* Added savepoint to upgrade.php
  savepoint omitted from earlier update to upgrade.php

* Updated namespaces and upgrade
  Service and resource classes moved into .../local/...
  Upgrade SQL moved into a function and unit test created

* Updated lti_tool_proxies table
  Added indices and foreign keys to lti_tool_proxies table

* Fixed formatting and documentation issues

* ltiservice class moved into local

* Replaced lti_scale_used comments
  Put back commented out code for lti_scale_used

* Removed redundant sesskey code

* Fixed namespace and path check
  Updated ltiservice namespace for move into local
  Added check for existence of $_SERVER['PATH_INFO']

* Updated upgrade code
  Added indices and keys to lti_tool_settings table when upgrading
  Fixed errors in upgradelib_test.php (thanks to jleyva)
  Update SQL to use Moodle functions

* Use of empty with class method
  PHP 5.4 does not like the use of empty with a class method so saved the
  value to a variable first.  PHP 5.5 seems to accept the use of a method
  with empty.

* Removed redundant indices
  Removed creation of indices for foreign keys on lti_tool_settings table
  from install.xml and upgrade.php

* Fixes based on feedback
  Minor changes and corrections based on review in JIRA

* Fixed bug in toolproxy service
  Corrected bug which failed to respond properly to an invalid request
  Also updated upgrade.txt file

* Improved admin navigation
  Added the manage tool registrations page as a separate entry on the
  admin menu (within a folder named LTI).  Made this entry the current
  position for the related pages.

* Updated PHPdocs with class names
  Added class names with namespaces to PHPdocs to replace generic
  references to "object"

* Changed object to iframe
  Use of object tag in register.php changed to use an iframe tag in line
  with the similar update made to view.php.

* Improved registration process
  A message is now displayed if the registration page has not been loaded
  in the iframe within 20 seconds.  If a user is returned to Moodle
  without a tool proxy being sent, the registration is moved back from
  pending to configured.

* Fixes for integration
  Removed comment - the template is the default path unless overridden, so
  get_path and get_template should both be defined.
  Added comment and intval to fix the issue with obtaining an error
  reason.
2014-10-16 09:33:33 +13:00
sam marshall
9c85baa8c5 MDL-44725 Availability: Replace groupmembersonly - FEATURE_xx (6)
Remove old FEATURE_GROUPMEMBERSONLY as no longer required.
2014-09-02 13:03:17 +01:00
Eloy Lafuente (stronk7)
70465e7cb5 Merge branch 'MDL-45764_generalTool' of https://github.com/moodlerooms/moodle 2014-06-24 00:01:51 +02:00