MDL-82844 ws: Return home page url in get_site_info WebService
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
issueNumber: MDL-82844
|
||||
notes:
|
||||
core_external:
|
||||
- message: >-
|
||||
The external function core_webservice_external::get_site_info now
|
||||
returns the default home page URL when needed.
|
||||
type: changed
|
||||
@@ -194,6 +194,9 @@ class core_webservice_external extends \core_external\external_api {
|
||||
|
||||
// User home page.
|
||||
$siteinfo['userhomepage'] = get_home_page();
|
||||
if ($siteinfo['userhomepage'] === HOMEPAGE_URL) {
|
||||
$siteinfo['userhomepageurl'] = (string) get_default_home_page_url();
|
||||
}
|
||||
|
||||
// Calendar.
|
||||
$siteinfo['sitecalendartype'] = $CFG->calendartype;
|
||||
@@ -280,6 +283,8 @@ class core_webservice_external extends \core_external\external_api {
|
||||
'userhomepage' => new external_value(PARAM_INT,
|
||||
'the default home page for the user: 0 for the site home, 1 for dashboard',
|
||||
VALUE_OPTIONAL),
|
||||
'userhomepageurl' => new external_value(PARAM_LOCALURL,
|
||||
'The URL of default home page when userhomepage is 4 (HOMEPAGE_URL).', VALUE_OPTIONAL),
|
||||
'userprivateaccesskey' => new external_value(PARAM_ALPHANUM, 'Private user access key for fetching files.',
|
||||
VALUE_OPTIONAL),
|
||||
'siteid' => new external_value(PARAM_INT, 'Site course ID', VALUE_OPTIONAL),
|
||||
|
||||
@@ -30,6 +30,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
|
||||
* External course functions unit tests
|
||||
*
|
||||
* @package core_webservice
|
||||
* @covers \core_webservice_external::get_site_info
|
||||
* @category external
|
||||
* @copyright 2012 Paul Charsley
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
@@ -44,6 +45,9 @@ final class externallib_test extends externallib_advanced_testcase {
|
||||
set_config('enablewebservices', '1');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test get_site_info.
|
||||
*/
|
||||
public function test_get_site_info(): void {
|
||||
global $DB, $USER, $CFG, $PAGE;
|
||||
|
||||
@@ -281,4 +285,41 @@ final class externallib_test extends externallib_advanced_testcase {
|
||||
$this->assertEquals('core_user_get_users', $result['functions'][0]['name']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test get_site_info returns the default home page URL when needed.
|
||||
*/
|
||||
public function test_get_site_info_default_home_page(): void {
|
||||
global $CFG;
|
||||
|
||||
$this->resetAfterTest();
|
||||
$this->setAdminUser();
|
||||
|
||||
// Site configuration.
|
||||
$CFG->defaulthomepage = HOMEPAGE_MY;
|
||||
|
||||
$result = \core_webservice_external::get_site_info();
|
||||
$result = external_api::clean_returnvalue(\core_webservice_external::get_site_info_returns(), $result);
|
||||
$this->assertEquals(HOMEPAGE_MY, $result['userhomepage']);
|
||||
$this->assertArrayNotHasKey('userhomepageurl', $result);
|
||||
|
||||
$CFG->defaulthomepage = "{$CFG->wwwroot}/home";
|
||||
|
||||
$result = \core_webservice_external::get_site_info();
|
||||
$result = external_api::clean_returnvalue(\core_webservice_external::get_site_info_returns(), $result);
|
||||
$this->assertEquals(HOMEPAGE_URL, $result['userhomepage']);
|
||||
$this->assertEquals($CFG->defaulthomepage, $result['userhomepageurl']);
|
||||
|
||||
// User preference.
|
||||
$CFG->defaulthomepage = HOMEPAGE_USER;
|
||||
|
||||
$userpreference = "{$CFG->wwwroot}/about";
|
||||
set_user_preference('user_home_page_preference', $userpreference);
|
||||
|
||||
$result = \core_webservice_external::get_site_info();
|
||||
$result = external_api::clean_returnvalue(\core_webservice_external::get_site_info_returns(), $result);
|
||||
$this->assertEquals(HOMEPAGE_URL, $result['userhomepage']);
|
||||
$this->assertEquals($userpreference, $result['userhomepageurl']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user