As a result of fixing the auth plugins config storage in MDL-12689, many
settings would be falsely reported as new ones by
admin/upgradesettings.php. We do not want to confuse admins so we try to
reduce the bewilderment by pre-populating the config_plugins table with
default values. This should be done only for disabled auth methods. The
enabled methods have their settings already stored, so reporting actual
new settings for them is valid.
It has never been guaranteed that settings.php would always be included
from inside the core\plugininfo\auth::load_settings() scope only.
Alternative fix would be to use $plugininfo->name but I think it is
better to be explicit here (same as we are explicit with setting names,
strings etc).
Um - this code is regexing for exact strings generated from the rendering of icons. I'm not going to rewrite anything
to do with tinymce - for now we just make the regexes far less specific.
The existing search is too broad, and the text being searched exists
a number of times in the block, all them hidden, but one (the one
where we want to really check for the existence of the text).
So this patch only changes the search from block to the target
tab, doing it by css element id. Ideally we should be able to
search in tabs more naturally, but we don't have support for that right
now.
For work accounts we need to specify the auth headers, for personal accounts we cannot specify the auth headers.
We don't know which is which so we have to try both cases.
We cannot use redirect() because is not compatible with
webservice/pluginfile.php
This script is defined as an AJAX_SCRIPT so redirections are not
allowed by redirect() function.
We need to ensure we use the correct oauth client to download files. This change
is the same as the one made to the onedrive repository where a usesystem flag
is added to the file reference if the file has been copied to the system account.
We modified calendar_get_events in a non backwards compatible way
so instead of fixing that, an easier approch is to simply revert
it to the 3.2 implementation. This should be fine since the way
to get events is going to change in an upcomming release, and we
had to swap all occurences of calendar_get_events in core with
calendar_get_legacy_events to make sure the calendar and overview match.
Significant string changes:
* errorinvalidbyhour,core_calendar - correcting number from 59 to 23
* cron_help,core_admin - updated recommendation to run cron every minute
* tour1_content_end, tour1_content_welcome, tour2_content_end,
tour2_content_welcome all in tool_usertours - removing reference to
3.2
* invalidsesskey,core_error and invalidsesskey,mod_wiki - more
understandable error message
* pluginname_help and pluginnamesummary in qtype_essay - explaining that
the question type can be used for file uploads
* formatnoinline, mustattach and mustrequire in qtype_essay - changing
the word 'inline' to 'online'
Some auth plugins used to have a mix of the legacy style of plugin names
in config_plugins table (such as 'auth/mnet') and the new correct
style (such as 'auth_mnet'). Attempting to rename the setting plugin via
low level SQL UPDATE could lead to duplicate key violation.
The patch introduces a new helper function to safely migrate the old
settings to the new ones, eventually informing the admin about the
values mismatch.
Previously the assign submission page was using "lenient" logic
for overrides when more than one group override applied to a user
(i.e., use the earliest "open" date and the latest "due" date)
when really it should be using the sortorder as per the assign
grading table.
If the store is shared and the getAllKeys function is broken due to an
incompatability between libmemcached and memcached >= 1.4.23, then it is
not possible to purge the cache, and we cannot support the plugin.
This patch adjusts the isready check to additionally check if the
combination of libmemcached and memcached is affected by this issue.
In the detailed statistics view for one user attempt, the user response
for numerical question types was not being displayed.
This was only happening for incorrect responses.
The feedback module lets you alternate between responses being anonymised and
not anonymised. When the module is in anonymous mode, its possible for a single
user to make multiple responses.
However when the activity is switched to non-anon mode, if a user leaves a
follow up feedback, one of their previously anonymous responses is used, so
their new response stays anonymous and their old anon response is lost.
This change lets them leave a new non-anonymised feedback entry and retains all
previous anonymous responses instead of incorrectly reusing one of their anon
ones at random.
MS makes a big mess of returning scopes from oauth requests. They only return the custom MS scopes like
User.Read and they never return non-MS scopes (like openid, profile, email).
There is a difference between how our PHP mustache engine and JS
mustache engine escaping works. If the icon key is not hard-coded in the
template but defined as a context variable, the JS mustache engine
escapes the forward slashes.
* Set default grading due date one week from the due date if:
- there is no grading due date set; and
- the assignment's due date is not older than 3 weeks from the
current date.
MDL-58334 and MDL-32471 introduced new parameters in pluginfile.php but
they are missing from webservice/pluginfile.php
We need the offline one in the Mobile app (this new parameter was
designed thinking in the mobile app)
core_course_get_contents was only checking for modules visible by the
user (via uservisible).
It was not checking for modules that are not visible for the user but
should be displayed in the course because they have access restrictions
configured.
Previously we were not filtering on groups in the event vault
which meant events for all groups would be returned regardless
of which user was passed in.
This resulted in situations where one student would group overrides
for groups they were not in.
Prior to this patch, if a user was in two groups, and an override
existed for both groups in an assignment the override
visually lower on the override list would be displayed on the
overview, whereas the one visually higher would be displayed
in the assignment grading table.
In clean theme the behat step to add record to mod_data does not actually view the database
activity. In 3.3 the default value for completionview is 1 and it breaks the behat in Clean.
This is the same problem that we had in MDL-52486. When the language
pack with multiple underscores (such as "en_us_k12") is selected, the
html root element's "lang" attribute is set to
<html lang="en-us-12" ...>
which we then map back to the Moodle lang code using the JS function
replace().
What was missed in MDL-52486 was that when replacing a value (and not a
regular expression), only the first instance of the value is replaced.
So the value "en_us-k12" was sent as the lang parameter for the
core_string, which is invalid PARAM_LANG value and the exception was
thrown.
In case of the user_date.js, there was no actual problem experienced and
probably there is none as the language code is used as a cache key
rather than a PARAM_LANG parameter. But we are changing it too for
consistency.
Recently we added support to the new OAuth SSO methods (Google,
Facebook, Microsoft) and identity providers, that will require
launchurl to be returned always by tool_mobile_get_public_config
It is safe to return always the launchurl, the main reason to not
return it was to reduce data returned by Web Services when was not
required.
Added extra { } braces in mustache to prevent double escaping
which means they are now tripple braces.
Previously if a course name or item such as an assighment
had a character like & it would show as & in the course
overview block.
The ‘description’ field is populated via a get_string call, this means
that it may content html.
The component used for translation is also fixed in this commit.
The module was choosing as incorrect the first possible incorrect
answer instead the first student incorrect answer.
In the patch I also refactored the foreach loop to avoid code
duplication.
The variables AJAX_SCIRPT, CLI_SCRIPT, WS_SERVER are always defined (and set to false)
when webpages are rendered, hence the check of 'defined' is invalid
MDL-58267 converted "Display description on course page" to advcheckbox
(see 7f53e8aa22).
Advanced checkboxes cannot be tested without real browser because Goutte
does not support the hidden+checkbox duality (MDL-55386).
So this patch does:
- Convert the NON-JS checks to use the "Force format" field (normal checkbox).
- Move the "Display description on course page" (adv. checkbox) to the JS scenario.
- Complete the 2 groups of checks above so the two ways to tick and untick are covered:
- I set the field "xxxx" to "yyyy"
- I set the following fields to these values:
- Complete the 2 groups of checks above so the two ways to verify the values are covered:
- the field "xxxx" [matches|does not match] value "yyyy"
- the following fields [match|do not match] these values:
That's all! The scenario is a bit spaghetti but it's way off the scope
of the issue to fix that.
Boost has a right margin on the userpicture but this is missing in bootstrapbase (it is
added only on random pages).
Add a margin to bootstrapbase so it matches boost.
Random jumps to content pages were not working when they were set in
the first page.
This was caused because the page where the jump was, was not being
marked as visited before calculating the jump.
These fields must be returned always (even if the quiz is closed).
Those fields are required to display data to users that, for example,
finished a timed quiz.
The icon itself has been found insufficient, teachers did not realize it
was used to switch the phase. Its semantics is even less intuitive in
Boost when we do not show it on course outline any more.
So this patch starts to display the information that has been present
for assistive technologies only. As a side effect, I spotted there was a
bug that caused the id attribute "mod_workshop-userplancurrenttasks"
was used for all titles (not only the current one) so it did not
really serve the purpose well.
When the default home page is set by user preference the site home
blocks are gone.
This is caused because the page layout is not correctly set before
manipulating the navigation block (the base layout it is used instead).
2017-03-28 17:10:15 +02:00
713 changed files with 4613 additions and 3324 deletions
$string['connectsystemaccount']='Connect to a system account';
$string['createfromtemplate']='Create an OAuth 2 service from a template';
$string['createfromtemplatedesc']='Choose one of the OAuth 2 service template below to create an OAuth service with a valid configuration for one of the known service types. This will create the OAuth 2 service, with all the correct end points and parameters required for authentication, but you will still need to enter the client ID and secret for the new service before it can be used.';
$string['createfromtemplatedesc']='Choose one of the OAuth 2 service templates below to create an OAuth service with a valid configuration for one of the known service types. This will create the OAuth 2 service, with all the correct end points and parameters required for authentication, though you will still need to enter the client ID and secret for the new service before it can be used.';
$string['createnewendpoint']='Create new endpoint for issuer "{$a}"';
$string['createnewfacebookissuer']='Create new Facebook service';
$string['createnewgoogleissuer']='Create new Google service';
@@ -39,7 +39,7 @@ $string['createnewuserfieldmapping'] = 'Create new user field mapping for issuer
$string['deleteconfirm']='Are you sure you want to delete the identity issuer "{$a}"? Any plugins relying on this issuer will stop working.';
$string['deleteendpointconfirm']='Are you sure you want to delete the endpoint "{$a->endpoint}" for issuer "{$a->issuer}"? Any plugins relying on this endpoint will stop working.';
$string['deleteuserfieldmappingconfirm']='Are you sure you want to delete the user field mapping for issuer "{$a}"?';
$string['discovered_help']='Discovery means that the OAuth2 endpoints could be automatically determined from the base url for the OAuth service. Not all services are required to be "discovered", but if they are not, then the endpoints and user mapping information will need to be entered manually.';
$string['discovered_help']='Discovery means that the OAuth2 endpoints could be automatically determined from the base URL for the OAuth service. Not all services are required to be "discovered", but if they are not, then the endpoints and user mapping information will need to be entered manually.';
$string['editendpoint']='Edit endpoint: {$a->endpoint} for issuer {$a->issuer}';
@@ -52,25 +52,25 @@ $string['endpointname_help'] = 'Key used to search for this endpoint. Must end w
$string['endpointname']='Name';
$string['endpointsforissuer']='Endpoints for issuer: {$a}';
$string['endpointurl_help']='URL for this endpoint. Must use https:// protocol.';
$string['endpointurl']='Url';
$string['issuersetup']='Detailed instructions on configuring the common OAuth 2 Services';
$string['endpointurl']='URL';
$string['issuersetup']='Detailed instructions on configuring the common OAuth 2 services';
$string['issuersetuptype']='Detailed instructions on setting up the {$a} OAuth 2 provider';
$string['issueralloweddomains_help']='If set, this setting is a comma separated list of domains that logins will be restricted to when using this provider.';
$string['issuerimage_help']='An image url used to show a logo for this issuer. May be displayed on login page.';
$string['issuerimage_help']='An image URL used to show a logo for this issuer. May be displayed on login page.';
$string['issuerimage']='Logo URL';
$string['issuerloginparams']='Additional parameters included in a login request.';
$string['issuerloginparams_help']='Some systems require additional parameters for a login request in order to read the users basic profile.';
$string['issuerloginparams_help']='Some systems require additional parameters for a login request in order to read the user\'s basic profile.';
$string['issuerloginparamsoffline']='Additional parameters included in a login request for offline access.';
$string['issuerloginparamsoffline_help']='Each OAuth system defines a different way to request offline access. E.g. Google requires the additional params: "access_type=offline&prompt=consent" these parameters should be in url query parameter format.';
$string['issuerloginscopes_help']='Some systems require additional scopes for a login request in order to read the users basic profile. The standard scopes for an OpenID Connect compliant system are "openid profile email".';
@@ -79,14 +79,14 @@ $string['issuerloginscopesoffline'] = 'Scopes included in a login request for of
$string['issuerloginscopes']='Scopes included in a login request.';
$string['issuername_help']='Name of the identity issuer. May be displayed on login page.';
$string['issuername']='Name';
$string['issuershowonloginpage_help']='If the OpenID Connect Authentication plugin is enabled, this login issuer will be listed on the login page to allow users to login with accounts from this issuer.';
$string['issuershowonloginpage_help']='If the OpenID Connect Authentication plugin is enabled, this login issuer will be listed on the login page to allow users to login with accounts from this issuer.';
$string['issuershowonloginpage']='Show on login page.';
$string['issuers']='Issuers';
$string['loginissuer']='Allow login';
$string['notconfigured']='Not configured';
$string['notdiscovered']='Service discovery not successful';
$string['systemaccountconnected_help']='System accounts are used to provide advanced functionality for plugins. They are not required for login functionality only, but other plugins using the OAuth service may offer a reduced set of features if the system account has not been connected. For example repositories cannot support "controlled links" without a system account to perform file operations.';
@@ -140,7 +140,7 @@ $string['tour_resetforall'] = 'The state of the tour has been reset. It will be
// Boost - administrator tour.
$string['tour1_title_welcome']='Welcome';
$string['tour1_content_welcome']='Welcome to the Boost theme for Moodle 3.2. If you\'ve used Moodle before you might find some things look a bit different.';
$string['tour1_content_welcome']='Welcome to the Boost theme. If you\'ve upgraded from an earlier version, you might find some things look a bit different with this theme.';
$string['tour1_title_navigation']='Navigation';
$string['tour1_content_navigation']='Major navigation is now through this nav drawer. The contents update depending on where you are in the site. Use the button at the top to hide or show it.';
$string['tour1_content_addingblocks']='In fact, think carefully about including any blocks on your pages. Blocks are not shown on the Moodle Mobile app, so as a general rule it\'s much better to make sure your site works well without any blocks.';
$string['tour1_title_end']='End of tour';
$string['tour1_content_end']='This has been a user tour, a new feature in Moodle 3.2. It won\'t show again unless you reset it using the link in the footer. As an admin you can also create your own tours like this!';
$string['tour1_content_end']='This is the end of your user tour. It won\'t show again unless you reset it using the link in the footer. As an admin you can also create your own tours like this!';
// Boost - course view tour.
$string['tour2_title_welcome']='Welcome';
$string['tour2_content_welcome']='Welcome to the Boost theme for Moodle 3.2. If you\'ve used Moodle before you might find things look a bit different here on the course page.';
$string['tour2_content_welcome']='Welcome to the Boost theme. If your site has been upgraded from an earlier version, you might find things look a bit different here on the course page.';
$string['tour2_content_customisation']='To change any course settings, use the settings menu in the corner of this header. You will find a similar settings menu on the home page of every activity, too. Try turning editing on right now.';
$string['tour2_title_navigation']='Navigation';
@@ -168,4 +168,4 @@ $string['tour2_content_addblock'] = 'If you turn editing on you can add blocks f
$string['tour2_content_addingblocks']='You can add blocks to this page using this button. However, think carefully about including any blocks on your pages. Blocks are not shown on the Moodle Mobile app, so for the best user experience it is better to make sure your course works well without any blocks.';
$string['tour2_title_end']='End of tour';
$string['tour2_content_end']='This has been a user tour, a new feature in Moodle 3.2. It won\'t show again unless you reset it using the link in the footer. The site admin can also create further tours for this site if required.';
$string['tour2_content_end']='This is the end of your user tour. It won\'t show again unless you reset it using the link in the footer. The site admin can also create further tours for this site if required.';
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['accountexists']='A user already exists on this site with this username. If this is your account, login manually and link this link from your preferences page.';
$string['accountexists']='A user already exists on this site with this username. If this is your account, login by entering your username and password and add it as a linked login via your preferences page.';
$string['auth_oauth2description']='OAuth 2 standards based authentication';
@@ -65,14 +65,14 @@ $string['createaccountswarning'] = 'This authentication plugin allows users to c
$string['createnewlinkedlogin']='Link a new account ({$a})';
$string['emailconfirmlink']='Link your accounts';
$string['emailconfirmlinksent']='<p>An existing account was found with this email address but it is not linked yet.</p>
<p>The accounts must be linked before you can login.</p>
<p>An email should have been sent to your address at <b>{$a}</b></p>
<p>The accounts must be linked before you can login.</p>
<p>An email should have been sent to your address at <b>{$a}</b>.</p>
<p>It contains easy instructions to link your accounts.</p>
<p>If you continue to have difficulty, contact the site administrator.</p>';
<p>If you have any difficulty, contact the site administrator.</p>';
$string['info']='External account';
$string['issuer']='OAuth 2 Service';
$string['linkedlogins']='Linked logins';
$string['linkedloginshelp']='Help with linked logins.';
$string['linkedloginshelp']='Help with linked logins';
$string['loginerror_userincomplete']='The user information returned did not contain a username and email address. The OAuth 2 service may be configured incorrectly.';
$string['loginerror_nouserinfo']='No user information was returned. The OAuth 2 service may be configured incorrectly.';
$string['loginerror_invaliddomain']='The email address is not allowed at this site.';
@@ -81,5 +81,5 @@ $string['loginerror_cannotcreateaccounts'] = 'The account does not exist and thi
$string['notwhileloggedinas']='Linked logins cannot be managed while logged in as another user.';
$string['oauth2:managelinkedlogins']='Manage own linked login accounts';
$string['plugindescription']='This authentication plugin displays a list of the configured identity providers on the moodle login page. Selecting an identity provider allows users to login with their credentials from an OAuth 2 provider.';
$string['plugindescription']='This authentication plugin displays a list of the configured identity providers on the login page. Selecting an identity provider allows users to login with their credentials from an OAuth 2 provider.';
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.