Commit graph

20828 commits

Author SHA1 Message Date
Dan Poltawski
8780d80e80 NOBUG: Fixed file access permissions 2015-10-14 10:49:01 +01:00
Dan Poltawski
08d93936f4 Merge branch 'MDL-51576-master-2' of git://github.com/ryanwyllie/moodle 2015-10-13 09:23:31 +01:00
David Monllao
ee58df52da Merge branch 'MDL-46455-master-20151012' of git://github.com/damyon/moodle 2015-10-13 11:42:40 +08:00
Andrew Nicols
3648d7963a Merge branch 'MDL-51427-master' of git://github.com/marinaglancy/moodle 2015-10-13 10:13:43 +08:00
David Monllao
09d62af419 Merge branch 'MDL-51568-master' of git://github.com/jleyva/moodle 2015-10-13 10:11:55 +08:00
Ryan Wyllie
4b596728e7 MDL-51576 navigation: stop course nav duplication
The course navigation was getting duplicate nodes because
it was loading the nav tree plugin functions twice. Once
specifically for the reports and then a second time more generally.

The code will now explicitly skip loading the report plugin
functions on the second load.
2015-10-13 01:46:25 +00:00
Andrew Nicols
8775bc4d40 Merge branch 'MDL-50079-master' of git://github.com/danpoltawski/moodle 2015-10-13 09:24:31 +08:00
Andrew Nicols
29caaeff9e Merge branch 'MDL-50788-master' of git://github.com/danpoltawski/moodle 2015-10-13 08:08:51 +08:00
sam marshall
fc830670a2 MDL-51467 Availability: Course reset should change restrict dates 2015-10-12 17:33:51 +01:00
Dan Poltawski
576a0cc3ab Merge branch 'MDL-51375' of git://github.com/timhunt/moodle 2015-10-12 17:01:41 +01:00
Juan Leyva
d1b30757bd MDL-51563 core_user: Fix invalid passed parameteres in get_user 2015-10-12 13:53:57 +02:00
Dan Poltawski
668980be3e Merge branch 'MDL-51536-master' of git://github.com/damyon/moodle 2015-10-12 11:47:45 +01:00
Dan Poltawski
30b86ccb68 Merge branch 'MDL-51605-master' of git://github.com/damyon/moodle 2015-10-12 09:46:00 +01:00
Damyon Wiese
ac82a9a8b4 MDL-46455 Events: Add db mapping info even if not part of backup
We can return db mapping info even for objects that are not included
in backup/restore and it may be useful in future (no use in core yet).
2015-10-12 16:41:02 +08:00
Juan Leyva
e8ad99ab91 MDL-51568 self_enrol: New Web Service enrol_self_enrol_user 2015-10-12 09:13:51 +02:00
Andrew Nicols
99690e0fa8 MDL-46497 atto: Whitespace/coding style fix 2015-10-12 13:37:29 +08:00
Andrew Nicols
56b62992fa Merge branch 'MDL-46497_master' of https://github.com/nadavkav/moodle 2015-10-12 13:35:24 +08:00
David Monllao
b60abb8486 Merge branch 'MDL-51524-master' of git://github.com/andrewnicols/moodle 2015-10-12 10:36:05 +08:00
Andrew Nicols
c0ea3a71fc Merge branch 'MDL-51451-master' of https://github.com/sammarshallou/moodle 2015-10-12 10:10:51 +08:00
Mark Nelson
607021c14b MDL-46455 events: added more mapping
Also fixed a few bugs.
2015-10-11 18:52:36 -07:00
Andrew Nicols
44250050dc MDL-51524 tests: Fix broken tests
The upgraded version of HTML2Text highlighted some bugs in our unit tests.

In the IOS test, the HTML content includes a couple of patches of  
In the previous version of HTML2Text, these were being converted to
breaking spaces. In one of these cases, it was then removed due to a trim.
The expected texts have been converted to use the correct non-breaking spaces.
In the case of the trimmed one, it is no longer trimmed as non-breaking
spaces are not trimmed.
This gives a truer reflection of the actual text.

In the case of the Outlook test, this trailing whitespace is not present in
the source. It was likely caused by a bug in the previous version of
HTML2Text.

In the case of the weblib change, the test was just wrong. Both of the
actual characters are encodings for an HTML bullet (decimal and hex) and
should both be converted to the relevant UTF8 representation of this
bullet.
2015-10-12 09:35:59 +08:00
Andrew Nicols
ec2d33dfcd MDL-51524 libraries: Update to latest version of html2text
We were previously using an ancient version of html2text from RoundCube
with many customisations.

This patchset moves to the version included in the latest version of
HTML2Text, and wraps the library in a moodle-provided class. This
moves all previous hacks away from that class.

Unfortunately, two hacks still remain - two of the functions in the
RoundCube class are private, and must be modified to protected in order to
use the class effectively.
2015-10-12 09:35:58 +08:00
Damyon Wiese
63b5a5faad MDL-46455 event: Make the debugging messages print the event class.
Because they are in the base class, it was impossible to find which event
triggered the debugging.
2015-10-11 18:14:58 -07:00
Damyon Wiese
0817451470 MDL-46455 events: Add mapping info to events
This commit covers all events outside of /mod/. It adds mapping info for restoring
events, or the default implementation which returns false if mapping is not required.
2015-10-11 18:14:58 -07:00
Mark Nelson
901a7ff7f2 MDL-46455 restore: added restore support for 'other' in events 2015-10-11 18:14:51 -07:00
David Mudrák
30c264211e MDL-49329 admin: Fix reported coding style warnings 2015-10-10 09:15:27 +02:00
David Mudrák
dbdd02c1fe MDL-49329 admin: Start using API 1.3 for fetching available updates
This is not really necessary as there is no actual change in the
behaviour of the updates API between 1.2 and 1.3. However, as we plan to
use the new \core\update\api client for this in the future, it makes
only sense to have these two synced already now. In other words, Moodle
3.0 site will use the same version 1.3 for all download.moodle.org/api
end points.
2015-10-10 09:15:27 +02:00
David Mudrák
b0fc789878 MDL-49329 admin: Clean up disabling of plugins code management features
The admin setting updateautodeploy no longer exists. The two existing
config.php flags $CFG->disableupdateautodeploy and
$CFG->disableonclickaddoninstall merged into a single one.
2015-10-10 09:11:19 +02:00
Mark Nelson
6920d3904c MDL-46455 restore: added restore support for the 'objectid' in events 2015-10-09 16:23:09 -07:00
Lior Gil
2209309e2c MDL-46497 Atto: Fix adding redundant p elements in rtl/ltr actions 2015-10-10 01:36:48 +03:00
David Mudrák
d9a5b810bd MDL-49329 admin: Do not force admin to reconfirm the core upgrade 2015-10-09 23:37:33 +02:00
David Mudrák
c20e9ae836 MDL-49329 admin: Add ability to cancel upgrade of the plugin
If there is an available archived zip with the version of the plugin
currently installed, we can use it to cancel/abort the upgrade of the
plugin. This is internally handled as the installation of the archived
zip and goes through all the validation and confirmation.

Additionally, some other parts were improved. Most notably, renderer no
longer decides itself if some installation can be cancelled but it
always asks the controller (plugin manager).

The button for installation was moved to the left so there should be
first buttons to add things, and then buttons to cancel things (which is
common in normal forms).
2015-10-09 23:37:32 +02:00
David Mudrák
80c3c6501d MDL-49329 admin: Clean up code manager methods
The method move_plugin_directory() was a relict from previous 2.9
implementation within tool_installadon_installer and was originally
supposed to be used to move whole plugin folders. The archiving feature
has been finally implemented via using zip files (so that we do not have
actual PHP code present in the dataroot) and we do not need this method.
2015-10-09 14:43:33 +02:00
David Mudrák
a2e1e0d0f1 MDL-49329 admin: Archive plugin code before removing it from dirroot
This should allow the admin to revert the upgrade of existing plugins,
such when the dependency chain leads to a dead-end. Additionally, we
archive (as a last-chance copy) the to-be-installed plugins when
cancelling their installation. This is mainly for developers who could
otherwise loose their code. For the same reason, plugins are being
archived upon uninstallation, too.
2015-10-09 14:33:47 +02:00
Dan Poltawski
cc75779fb4 MDL-50079 atto_link: respect new window option when creating from repo
Previously users had to go back and edit their link to set the new
window option.
2015-10-09 11:23:32 +01:00
Dan Poltawski
0496ac6305 MDL-50788 classloader: Prevent cryptic errors on unreadable classes dir
Do not attempt to read an unreadable directory because previously the generated
errors were hard to fathom.

Thanks to James McQuillan for the basis of the patch.
2015-10-09 10:36:59 +01:00
David Mudrák
4d7528f9bc MDL-49329 admin: Require confirmation before cancelling plugin install 2015-10-09 09:50:46 +02:00
David Mudrák
2d00be61f1 MDL-49329 admin: Make plugin manager able to install from local zips too
The plugin manager's method install_remote_plugins() has been changed to
install_plugins() and it is now able to install plugins from the
provided list of locally available ZIP files, too. This is used by the
Install plugins admin tool.
2015-10-09 09:50:46 +02:00
David Mudrák
da54cf11a4 MDL-49329 admin: Call opcache_reset() after installing new plugin code
During the testing, I was experiencing weird behaviour - after a single
plugin updated was installed, I ended up on admin/index.php?cache=1. I
believe it was caused by the missing opcache_reset().
2015-10-09 09:50:45 +02:00
David Mudrák
8726c07cd0 MDL-49329 admin: Use the new plugins management on Plugins overview page
The plugins overview page now uses the new plugins management features,
most notably the ability to install all available updates at once.
2015-10-09 09:50:45 +02:00
David Mudrák
531381f914 MDL-49329 admin: Support plugins installation during upgrade
The plugins check screen (displayed during core upgrade and/or plugins
upgrade) now supports installation of remote plugins. This includes
installation of missing dependencies (both single and bulk mode) and
installation of available updates (both single and bulk mode).

All the HTTP query parameters supported by admin/index.php are now
explicitly enlisted. Previously, the \core\update\deployer used
its own additional parameters (and was source of some serious problems
in the past).

The implementation uses the plugin manager as the controller and
provides an unified interface for installing any remote plugin or
plugins (be it available update or missing dependency).

As a side effect, we now validate available updates which was not
happening before.
2015-10-09 09:50:45 +02:00
David Mudrák
c948b813ae MDL-49329 admin: Add plugin manager method for installing remote packs
The new method core_plugin_manager::install_remote_plugins() will serve
as a backend for all the ways of installing ZIP packages from the moodle
plugins directory, such as installing new plugins (by clicking the
Install button in the plugins directory), installing available updates
(single and bulk mode) and installing missing dependencies (single and
bulk mode).

The method should be used both for validation pre-check screen and,
after the confirmation, for actual installation. Note that we
intentionally repeat the whole procedure after confirmation. Unzipping
plugins is cheap and fast and the ZIPs themselves are already available
in the \core\update\code_manager's cache.

We will need to add support for archiving existing code to prevent
accidental data-loss.

This basically provides what mdeploy.php was doing, but better. We now
have consistent way of installing all remote ZIP packages, always
validate them and we can perform bulk operations, too.
2015-10-09 09:50:44 +02:00
Damyon Wiese
b3c10f9fb2 MDL-51605 Atto: Fix deprecation warnings from upgraded rangy 2015-10-09 15:42:10 +08:00
David Mudrák
8acee4b53d MDL-49329 admin: Improve the plugin package validator
Previously, the validator was used for installation of the new plugins
only. We now validate every incoming plugin package. As a result, we
must no longer insists on the target location is empty. Instead, warning
is raised.
2015-10-08 23:32:05 +02:00
David Mudrák
fd2d146218 MDL-49329 admin: Validate the contents of the cached plugin ZIP package 2015-10-08 23:32:05 +02:00
David Mudrák
4f18a4e60c MDL-49329 admin: Introduce new \core\update\remote_info class
This is just a thin wrapper for normal objects, allowing us to have
explicit type hinting / declarations in method signatures.
2015-10-08 23:32:05 +02:00
David Mudrák
cc5bc55ead MDL-49329 admin: Add core_plugin_manager::available_updates() method
The new method is going to be used to support the "Update all plugins"
feature.
2015-10-08 23:32:04 +02:00
David Mudrák
3bca7dbfa6 MDL-49329 admin: Get rid of mdeploy and \core\update\deployer class
The mdeploy.php standalone script (used to download and unzip plugins
into the dirroot) and the \core\update\deployer class (as a
communication bridge between the core and the mdeploy.php) was
originally designed and implemented with the assumption that it would be
eventually used for updating the Moodle core itself, too. Therefore it
was written as standalone utility without dependency on the Moodle core
libraries.

However, it never happened and there is no real demand for that. So now
there is no need to have and maintain a completely parallel solution for
common things like fetching and unzipping plugin ZIPs.

Additional reasoning for mdeploy.php was that the core is not very
reliable during the core upgrade and we could run into various troubles.
This does not seem to be that bad. We rely on a lot of core
functionality (such as output rendering, DB access etc) and plugins
deployment seems to work well (and better) with common core libraries.

So long mdeploy, and thanks for all the hard work you did for us.
2015-10-08 23:32:04 +02:00
David Mudrák
d22835216f MDL-49329 admin: Clean up core_plugin unit tests
As a first step for removing the \core\update\deployer and mdeploy.php,
this patch fixes existing tests.
2015-10-08 23:32:04 +02:00
David Mudrák
36977a6d08 MDL-49329 admin: If unable to install a plugin, display the reason 2015-10-08 23:32:04 +02:00