MDL-71017 oath2: configuration check fix and return types

This commit is contained in:
Marina Glancy 2021-04-20 12:07:54 +02:00
parent 5a6f05c605
commit 57a444d31f
4 changed files with 10 additions and 9 deletions

View file

@ -102,7 +102,7 @@ class renderer extends plugin_renderer_base {
// Internal services issuer. // Internal services issuer.
if ((int)$issuer->get('showonloginpage') == issuer::LOGINONLY) { if ((int)$issuer->get('showonloginpage') == issuer::LOGINONLY) {
$serviceissuer = $this->pix_icon('no', get_string('issuersservicesnotallow', 'tool_oauth2'), 'tool_oauth2'); $serviceissuer = $this->pix_icon('no', get_string('issuersservicesnotallow', 'tool_oauth2'), 'tool_oauth2');
} else if ($issuer->get('id') && $issuer->is_configured() && !empty($issuer->get_endpoint_url('userinfo'))) { } else if ($issuer->get('id') && $issuer->is_configured()) {
$serviceissuer = $this->pix_icon('yes', get_string('issuersservicesallow', 'tool_oauth2'), 'tool_oauth2'); $serviceissuer = $this->pix_icon('yes', get_string('issuersservicesallow', 'tool_oauth2'), 'tool_oauth2');
} else { } else {
$serviceissuer = $this->pix_icon('notconfigured', get_string('notconfigured', 'tool_oauth2'), 'tool_oauth2'); $serviceissuer = $this->pix_icon('notconfigured', get_string('notconfigured', 'tool_oauth2'), 'tool_oauth2');

View file

@ -152,7 +152,7 @@ Feature: Basic OAuth2 functionality
When I press "Save changes" When I press "Save changes"
Then I should see "Changes saved" Then I should see "Changes saved"
And I should see "OpenBadges" And I should see "OpenBadges"
And "Not configured" "icon" should exist in the "OpenBadges" "table_row" And "Allow services" "icon" should exist in the "OpenBadges" "table_row"
And "Do not allow login" "icon" should exist in the "OpenBadges" "table_row" And "Do not allow login" "icon" should exist in the "OpenBadges" "table_row"
And "Service discovery successful" "icon" should exist in the "OpenBadges" "table_row" And "Service discovery successful" "icon" should exist in the "OpenBadges" "table_row"
And the "src" attribute of "table.admintable th img" "css_element" should contain "IMS-Global-Logo.png" And the "src" attribute of "table.admintable th img" "css_element" should contain "IMS-Global-Logo.png"
@ -222,8 +222,8 @@ Feature: Basic OAuth2 functionality
When I press "Save changes" When I press "Save changes"
Then I should see "Could not discover end points for identity issuer: Invalid custom service" Then I should see "Could not discover end points for identity issuer: Invalid custom service"
And I should see "URL: https://dc.imsglobal.org/.well-known/openid-configuration" And I should see "URL: https://dc.imsglobal.org/.well-known/openid-configuration"
And "Allow services" "icon" should exist in the "Invalid custom service" "table_row"
And "Do not allow login" "icon" should exist in the "Invalid custom service" "table_row" And "Do not allow login" "icon" should exist in the "Invalid custom service" "table_row"
And "Not configured" "icon" should exist in the "Invalid custom service" "table_row"
And I should see "-" in the "Invalid custom service" "table_row" And I should see "-" in the "Invalid custom service" "table_row"
And I click on "Configure endpoints" "link" in the "Invalid custom service" "table_row" And I click on "Configure endpoints" "link" in the "Invalid custom service" "table_row"
And I should not see "discovery_endpoint" And I should not see "discovery_endpoint"
@ -263,8 +263,8 @@ Feature: Basic OAuth2 functionality
When I press "Save changes" When I press "Save changes"
And I should see "Changes saved" And I should see "Changes saved"
And I should see "Empty custom service" And I should see "Empty custom service"
And "Allow services" "icon" should exist in the "Empty custom service" "table_row"
And "Do not allow login" "icon" should exist in the "Empty custom service" "table_row" And "Do not allow login" "icon" should exist in the "Empty custom service" "table_row"
And "Not configured" "icon" should exist in the "Empty custom service" "table_row"
And I should see "-" in the "Empty custom service" "table_row" And I should see "-" in the "Empty custom service" "table_row"
And I click on "Configure endpoints" "link" in the "Empty custom service" "table_row" And I click on "Configure endpoints" "link" in the "Empty custom service" "table_row"
And I should not see "discovery_endpoint" And I should not see "discovery_endpoint"

View file

@ -111,11 +111,12 @@ class api {
/** /**
* List all the issuers, ordered by the sortorder field * List all the issuers, ordered by the sortorder field
* *
* @param bool $showall also include issues that are configured to be shown only on login page * @param bool $includeloginonly also include issuers that are configured to be shown only on login page,
* By default false, in this case the method returns all issuers that can be used in services
* @return \core\oauth2\issuer[] * @return \core\oauth2\issuer[]
*/ */
public static function get_all_issuers(bool $showall = false) { public static function get_all_issuers(bool $includeloginonly = false) {
if ($showall) { if ($includeloginonly) {
return issuer::get_records([], 'sortorder'); return issuer::get_records([], 'sortorder');
} else { } else {
return array_values(issuer::get_records_select('showonloginpage<>?', [issuer::LOGINONLY], 'sortorder')); return array_values(issuer::get_records_select('showonloginpage<>?', [issuer::LOGINONLY], 'sortorder'));

View file

@ -196,7 +196,7 @@ class issuer extends persistent {
* @return bool * @return bool
* @throws \coding_exception * @throws \coding_exception
*/ */
public function is_available_for_login() { public function is_available_for_login(): bool {
return $this->get('id') && return $this->get('id') &&
$this->is_configured() && $this->is_configured() &&
$this->get('showonloginpage') != self::SERVICEONLY && $this->get('showonloginpage') != self::SERVICEONLY &&
@ -265,7 +265,7 @@ class issuer extends persistent {
* *
* @return string * @return string
*/ */
public function get_display_name() { public function get_display_name(): string {
return $this->get('loginpagename') ? $this->get('loginpagename') : $this->get('name'); return $this->get('loginpagename') ? $this->get('loginpagename') : $this->get('name');
} }
} }