From 0a5d05b14f87ff56f4c6beb1aae634e584b01db2 Mon Sep 17 00:00:00 2001 From: Christian Beeznest Date: Wed, 25 Jun 2025 15:03:32 -0500 Subject: [PATCH 01/10] Course: Fix unique answer IDs in quiz export to prevent Moodle import errors - refs BT#21977 --- main/inc/lib/moodleexport/QuizExport.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/main/inc/lib/moodleexport/QuizExport.php b/main/inc/lib/moodleexport/QuizExport.php index 7cd6794b6ba..69c11285833 100644 --- a/main/inc/lib/moodleexport/QuizExport.php +++ b/main/inc/lib/moodleexport/QuizExport.php @@ -209,13 +209,16 @@ private function mapQuestionType(string $quizType): string */ private function getAnswersForQuestion(int $questionId): array { + static $globalCounter = 0; $answers = []; $quizResources = $this->course->resources[RESOURCE_QUIZQUESTION] ?? []; foreach ($quizResources as $questionData) { if ($questionData->source_id == $questionId) { foreach ($questionData->answers as $answer) { + $globalCounter++; $answers[] = [ + 'id' => $questionId * 1000 + $globalCounter, 'text' => $answer['answer'], 'fraction' => $answer['correct'] == '1' ? 100 : 0, 'feedback' => $answer['comment'], @@ -316,9 +319,10 @@ private function createQuizXml(array $quizData, string $destinationDir): void // Add question instances $xmlContent .= ' '.PHP_EOL; + $slotIndex = 1; foreach ($quizData['questions'] as $question) { $xmlContent .= ' '.PHP_EOL; - $xmlContent .= ' '.$question['id'].''.PHP_EOL; + $xmlContent .= ' '.$slotIndex.''.PHP_EOL; $xmlContent .= ' 1'.PHP_EOL; $xmlContent .= ' 0'.PHP_EOL; $xmlContent .= ' '.$question['id'].''.PHP_EOL; @@ -326,6 +330,7 @@ private function createQuizXml(array $quizData, string $destinationDir): void $xmlContent .= ' $@NULL@$'.PHP_EOL; $xmlContent .= ' '.$question['maxmark'].''.PHP_EOL; $xmlContent .= ' '.PHP_EOL; + $slotIndex++; } $xmlContent .= ' '.PHP_EOL; @@ -417,8 +422,10 @@ private function exportTrueFalseQuestion(array $question): string } $xmlContent .= ' '.PHP_EOL; $xmlContent .= ' '.PHP_EOL; - $xmlContent .= ' '.($question['answers'][0]['id'] ?? '0').''.PHP_EOL; - $xmlContent .= ' '.($question['answers'][1]['id'] ?? '0').''.PHP_EOL; + $trueId = $question['answers'][0]['id'] ?? 0; + $falseId = $question['answers'][1]['id'] ?? 0; + $xmlContent .= ' '.$trueId.''.PHP_EOL; + $xmlContent .= ' '.$falseId.''.PHP_EOL; $xmlContent .= ' '.PHP_EOL; $xmlContent .= ' '.PHP_EOL; From ccaf0f6629e77b6ab5dc3e2ca068ec6e5dd0e7ab Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Thu, 26 Jun 2025 09:38:07 -0500 Subject: [PATCH 02/10] Webservice: Allow receiving body content in JSON format - BT#22611 --- main/webservices/api/v2.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/main/webservices/api/v2.php b/main/webservices/api/v2.php index bca1d19a2f6..1a1430fe642 100644 --- a/main/webservices/api/v2.php +++ b/main/webservices/api/v2.php @@ -23,6 +23,20 @@ $httpRequest = HttpRequest::createFromGlobals(); +$jsonContent = 'application/json' === $httpRequest->headers->get('Content-Type') + ? json_decode($httpRequest->getContent(), true) + : null; + +if ($jsonContent) { + foreach ($jsonContent as $key => $value) { + $value = Security::remove_XSS($value); + + $httpRequest->query->set($key, $value); + $httpRequest->request->set($key, $value); + $httpRequest->overrideGlobals(); + } +} + $hash = $httpRequest->query->get('hash'); if ($hash) { From a722d1b70d9affc48f29532dc0ba1580ef35f700 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Thu, 26 Jun 2025 23:43:59 +0200 Subject: [PATCH 03/10] Language: Update language terms --- main/lang/english/trad4all.inc.php | 4 ++++ main/lang/french/trad4all.inc.php | 4 ++++ main/lang/spanish/trad4all.inc.php | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/main/lang/english/trad4all.inc.php b/main/lang/english/trad4all.inc.php index 0c47caf0cc1..0f9efe4f212 100644 --- a/main/lang/english/trad4all.inc.php +++ b/main/lang/english/trad4all.inc.php @@ -9102,4 +9102,8 @@ $HideComment = "Hide comments"; $AreYouSureYouWantToDeleteThisTicket = "Are you sure you want to delete this ticket ?"; $TicketDeleted = "Ticket deleted"; +$SubmittedDocument = "Submitted document"; +$AnswerInOfficeDoc = "Answer as office document"; +$UploadOfficeDoc = "Upload office document"; +$AllowedFormats = "Supported formats"; ?> \ No newline at end of file diff --git a/main/lang/french/trad4all.inc.php b/main/lang/french/trad4all.inc.php index bc6f1685b8c..d648d5ba3f9 100644 --- a/main/lang/french/trad4all.inc.php +++ b/main/lang/french/trad4all.inc.php @@ -9037,4 +9037,8 @@ $HideComment = "Cacher les commentaires"; $AreYouSureYouWantToDeleteThisTicket = "Êtes vous sûr de vouloir supprimer ce ticket ?"; $TicketDeleted = "Ticket supprimé"; +$SubmittedDocument = "Document soumis"; +$AnswerInOfficeDoc = "Réponse comme document bureautique"; +$UploadOfficeDoc = "Envoyer un document bureautique"; +$AllowedFormats = "Formats supportés"; ?> \ No newline at end of file diff --git a/main/lang/spanish/trad4all.inc.php b/main/lang/spanish/trad4all.inc.php index 37622cfa286..7f3a2e763e3 100644 --- a/main/lang/spanish/trad4all.inc.php +++ b/main/lang/spanish/trad4all.inc.php @@ -9127,4 +9127,8 @@ $HideComment = "Ocultar comentarios"; $AreYouSureYouWantToDeleteThisTicket = "¿Estás seguro de que quieres eliminar este ticket?"; $TicketDeleted = "Ticket eliminado"; +$SubmittedDocument = "Documento entregado"; +$AnswerInOfficeDoc = "Respuesta como documento de ofimática"; +$UploadOfficeDoc = "Subir documento ofimático"; +$AllowedFormats = "Formatos soportados"; ?> \ No newline at end of file From ef7c8b5eb65eb6ffeaa4422fbfbb690e920b28e9 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 02:07:46 +0200 Subject: [PATCH 04/10] Plugin: OnlyOffice: Bump version to 1.5.0 and merge with exercise-specific code + fix issues saving document details --- plugin/onlyoffice/CHANGELOG.md | 4 +++ plugin/onlyoffice/README.md | 25 +++++++++++-------- plugin/onlyoffice/ajax/saveas.php | 2 +- plugin/onlyoffice/callback.php | 8 +++--- plugin/onlyoffice/create.php | 2 +- plugin/onlyoffice/editor.php | 2 +- plugin/onlyoffice/error.php | 2 +- plugin/onlyoffice/install.php | 2 +- plugin/onlyoffice/lib/langManager.php | 2 +- .../lib/onlyofficeActionObserver.php | 2 +- .../onlyoffice/lib/onlyofficeAppRequests.php | 2 +- .../onlyoffice/lib/onlyofficeAppSettings.php | 2 +- .../lib/onlyofficeCallbackService.php | 4 +-- .../lib/onlyofficeConfigService.php | 2 +- .../lib/onlyofficeDocumentManager.php | 2 +- .../lib/onlyofficeFormatsManager.php | 2 +- .../onlyoffice/lib/onlyofficeHttpClient.php | 2 +- .../lib/onlyofficeItemActionObserver.php | 2 +- .../lib/onlyofficeItemViewObserver.php | 2 +- .../onlyoffice/lib/onlyofficeJwtManager.php | 2 +- plugin/onlyoffice/lib/onlyofficePlugin.php | 2 +- .../lib/onlyofficeSettingsFormBuilder.php | 2 +- plugin/onlyoffice/lib/onlyofficeTools.php | 2 +- plugin/onlyoffice/lib/templateManager.php | 2 +- plugin/onlyoffice/plugin.php | 2 +- plugin/onlyoffice/uninstall.php | 2 +- .../onlyoffice/vendor/composer/installed.php | 12 ++++----- 27 files changed, 54 insertions(+), 43 deletions(-) diff --git a/plugin/onlyoffice/CHANGELOG.md b/plugin/onlyoffice/CHANGELOG.md index 8f231becfbf..13a47725099 100644 --- a/plugin/onlyoffice/CHANGELOG.md +++ b/plugin/onlyoffice/CHANGELOG.md @@ -2,6 +2,10 @@ This plugin is developed and maintained at https://github.com/ONLYOFFICE/onlyoffice-chamilo. +## +## Added +- Catalan, Czech, Danish, Hungarian, Indonesian, Romanian, Albanian, Urdu empty file templates + ## 1.5.0 ## Added - support learning path diff --git a/plugin/onlyoffice/README.md b/plugin/onlyoffice/README.md index 5b286f2d988..b1866a143e4 100644 --- a/plugin/onlyoffice/README.md +++ b/plugin/onlyoffice/README.md @@ -1,8 +1,8 @@ -# Chamilo ONLYOFFICE integration plugin +# ONLYOFFICE plugin for Chamilo -This plugin allows users to edit office documents from [Chamilo](https://chamilo.org) using ONLYOFFICE Docs packaged as Document Server - [Community or Enterprise Edition](#onlyoffice-docs-editions). +This plugin enables users to edit office documents from [Chamilo](https://chamilo.org) using ONLYOFFICE Docs packaged as Document Server - [Community or Enterprise Edition](#onlyoffice-docs-editions). -The plugin is compatible with Chamilo v1.11.16 and later, although some features might only work on the [latest stable version](https://chamilo.org/download) of Chamilo. +The plugin is compatible with Chamilo v1.11.16 or newer. ## Features @@ -54,7 +54,12 @@ the third party, here is the recommended procedure: git submodule update --init --recursive ``` -3. Clean up +3. Get plugin dependencies: + ``` + composer install + ``` + +4. Collect all files ``` mkdir /tmp/onlyoffice-deploy mkdir /tmp/onlyoffice-deploy/onlyoffice @@ -64,13 +69,13 @@ the third party, here is the recommended procedure: rm -rf */.git* ``` -4. Archive +5. Archive ``` cd ../ zip onlyoffice.zip -r onlyoffice ``` -## Installing Chamilo ONLYOFFICE integration plugin +## Installing ONLYOFFICE plugin for Chamilo The plugin has been integrated into Chamilo since version 1.11.16. @@ -90,12 +95,12 @@ Then launch `composer install` from the Chamilo root folder. Return to the plugin list, select the ONLYOFFICE plugin, and click "Enable". -## Configuring Chamilo ONLYOFFICE integration plugin +## Configuring ONLYOFFICE plugin for Chamilo On the Plugins page, find ONLYOFFICE and click _Configure_. You'll see the _Settings_ page. Enable the plugin and specify the _Document Server address_. -Starting from version 7.2, JWT is enabled by default and the secret key is generated automatically to restrict the access to ONLYOFFICE Docs and for security reasons and data integrity. -Specify your own **Secret key** on the Chamilo **Settings** page. The key can be found on your OnlyOffice server, depending on the type of server. See the ONLYOFFICE Docs [config file](https://api.onlyoffice.com/editors/signature/) page for more details. +Starting from version 7.2, JWT is enabled by default and the secret key is generated automatically to restrict the access to ONLYOFFICE Docs and for security reasons and data integrity. +Specify your own **Secret key** on the Chamilo **Settings** page. The key can be found on your OnlyOffice server, depending on the type of server. See the ONLYOFFICE Docs [config file](https://api.onlyoffice.com/docs/docs-api/additional-api/signature/) page for more details. Specify the same secret key (search for a long hash string next to "secret") and save. The plugin will tell you if anything is wrong. @@ -128,7 +133,7 @@ The plugin will tell you if anything is wrong. * Learners have access to a new ONLYOFFICE icon next to all documents supported by ONLYOFFICE in the documents tool. * In the learning paths, the viewer seamlessly integrates with Chamilo to open the supported documents. -More information on integration ONLYOFFICE Docs can be found in the [API documentation](https://api.onlyoffice.com/editors/basic). +More information on integration ONLYOFFICE Docs can be found in the [API documentation](https://api.onlyoffice.com/docs/docs-api/get-started/basic-concepts/). ## ONLYOFFICE Docs editions diff --git a/plugin/onlyoffice/ajax/saveas.php b/plugin/onlyoffice/ajax/saveas.php index e6ab2e6f1ed..744bbf34a63 100644 --- a/plugin/onlyoffice/ajax/saveas.php +++ b/plugin/onlyoffice/ajax/saveas.php @@ -1,6 +1,6 @@ readHash($_GET['hash'], api_get_security_key()); if (null === $hashData) { - error_log("ONLYOFFICE CALLBACK: ERROR - Hash inválido: ".$error); + error_log("ONLYOFFICE CALLBACK: ERROR - Invalid hash: ".$error); exit(json_encode(['status' => 'error', 'error' => $error])); } @@ -42,6 +42,9 @@ $groupId = $hashData->groupId; $sessionId = $hashData->sessionId; $docPath = isset($_GET['docPath']) ? urldecode($_GET['docPath']) : ($hashData->docPath ?? null); + // Load courseCode for various uses from global scope in other functions + $courseInfo = api_get_course_info_by_id($courseId); + $courseCode = $courseInfo['code']; if (!empty($userId)) { $userInfo = api_get_user_info($userId); @@ -196,7 +199,6 @@ function download() global $docId; global $groupId; global $docPath; - global $courseCode; global $sessionId; global $courseInfo; global $appSettings; diff --git a/plugin/onlyoffice/create.php b/plugin/onlyoffice/create.php index 074c5aa92bd..e3d7023af77 100644 --- a/plugin/onlyoffice/create.php +++ b/plugin/onlyoffice/create.php @@ -1,6 +1,6 @@ docData['sessionId']); update_existing_document($this->docData['courseInfo'], - $docId, + $fileid, filesize($filePath), false); $this->trackResult = 0; diff --git a/plugin/onlyoffice/lib/onlyofficeConfigService.php b/plugin/onlyoffice/lib/onlyofficeConfigService.php index 6fca962ba44..1e00290598a 100644 --- a/plugin/onlyoffice/lib/onlyofficeConfigService.php +++ b/plugin/onlyoffice/lib/onlyofficeConfigService.php @@ -1,6 +1,6 @@ array( 'name' => '__root__', - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => NULL, + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => 'e2dac8179b6ce15fe4dfb1df7703546297a02790', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -11,9 +11,9 @@ ), 'versions' => array( '__root__' => array( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => NULL, + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => 'e2dac8179b6ce15fe4dfb1df7703546297a02790', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), From a039923b7065fb00d2b5b1cfd56e7d4fb2703dbd Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 09:48:36 +0200 Subject: [PATCH 05/10] Internal: Remove potential double conversion of quotes in api_htmlentites() (change introduced in 1.11.30 to increase support for PHP 8.3) - loosely refs #6400 --- main/inc/lib/internationalization.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/inc/lib/internationalization.lib.php b/main/inc/lib/internationalization.lib.php index bad0f0538e3..063346cd0fd 100755 --- a/main/inc/lib/internationalization.lib.php +++ b/main/inc/lib/internationalization.lib.php @@ -1207,7 +1207,7 @@ function api_htmlentities($string, $quote_style = ENT_COMPAT, $encoding = 'UTF-8 break; } - return htmlentities($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); + return htmlentities($string, ENT_SUBSTITUTE, 'UTF-8'); } /** From b565af9055e4b2a846307f318a83b661cd3312a7 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 10:10:08 +0200 Subject: [PATCH 06/10] Documentation: Update changelog --- documentation/changelog.html | 52 +++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/documentation/changelog.html b/documentation/changelog.html index 0d2880d6116..fe39051606a 100755 --- a/documentation/changelog.html +++ b/documentation/changelog.html @@ -110,13 +110,62 @@

Chamilo Changelog

+
+ +

Chamilo 1.11.32 - Tikal, 27/06/2025

+

Release notes - summary

+

Chamilo 1.11.32 is a micro corrective release on top of 1.11.30. For any significant change, please check the 1.11.30 release notes.

+

Release name

+

Huaral a city in Peru, capital of the Huaral Province in the Department of Lima, on the path to the ancient city of Caral. 1.11.32 being a minor corrective release on top of 1.11.30 (called "Caral"), relating to a small city geographically close to Caral is a subtle wink to the Chamilo community there.

+

Security fixes

+
    +
  • No new vulnerability detected in this version
  • +
+

Important note

+

Chamilo 1.11.30 comes with subtle changes in the root .htaccess file which could affect your system (for example by triggering "Not Found" errors on course homepages) if you use Apache < 2.4.38-3. Please check line 37 of /.htaccess for more info.

+

Notable new Features

+

For end-users, teachers and Chamilo admins

+ These features are immediately available to users through the web interface.
+
    +
  • No notable change
  • +
+

For developers and sysadmins

+ Although most features here will be used by teachers or Chamilo admins, they require sysadmin privileges to enable them on the server. +
    +
  • No notable change
  • +
+

Improvements (minor features) and debug

+ In reverse chronological order... +
    +
  • [2025-06-27] (a039923b - GH#6400) Internal: Remove potential double conversion of quotes in api_htmlentites() (change introduced in 1.11.30 to increase support for PHP 8.3) - loosely refs
  • +
  • [2025-06-27] (ef7c8b5e) Plugin: OnlyOffice: Bump version to 1.5.0 and merge with exercise-specific code + fix issues saving document details
  • +
+

Stylesheets and theming

+
    +
  • No notable style change
  • +
+

Web services

+
    +
  • [2025-06-26] (ccaf0f66 - BT#22611) Webservice: Allow receiving body content in JSON format -
  • +
+

Removals

+
    +
  • No notable removal
  • +
+

Known issues

+
    +
  • No notable known issue
  • +
+
+ +

Chamilo 1.11.30 - Caral, 25/06/2025

Release notes - summary

Chamilo 1.11.30 is a patch release on top of 1.11.28.

Release name

-

Caral is is an archaeological site in Peru where the remains of the main city of the Caral civilization are found. It is attributed an antiquity of 5,000 years and it is considered the oldest city in the Americas and one of the oldest in the world. We found this reference ironically related to Chamilo 1.11.30 as we are closing towards a 2.0 release.

+

Caral is an archaeological site in Peru where the remains of the main city of the Caral civilization are found. It is attributed an antiquity of 5,000 years and it is considered the oldest city in the Americas and one of the oldest in the world. We found this reference ironically related to Chamilo 1.11.30 as we are closing towards a 2.0 release.

Security fixes

  • [2024-09-27] (387808b5) Security: Social: Add sec_token when commenting posts Fix GHSA-33gm-vrgh-m239
  • @@ -159,6 +208,7 @@

    Security fixes

  • [2025-06-17] (ead79db4) Security: Fix XSS in session category See advisory GHSA-p4m6-gwhg-x89f
  • [2025-06-24] (d672d118) Security: Set token validation to set a student as tutor
  • [2025-06-24] (1aaa53da) Security: Exercise: Remove XSS when displaying fill in blanks results
  • +

Important note

Chamilo 1.11.30 comes with subtle changes in the root .htaccess file which could affect your system (for example by triggering "Not Found" errors on course homepages) if you use Apache < 2.4.38-3. Please check line 37 of /.htaccess for more info.

Notable new Features

From 9265bfdecac66242d0260228fda826a007e0b9c6 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 10:10:32 +0200 Subject: [PATCH 07/10] Internal: Bump version number to 1.11.32 --- main/install/version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/install/version.php b/main/install/version.php index 1ae648933bb..98c841fc1be 100755 --- a/main/install/version.php +++ b/main/install/version.php @@ -13,7 +13,7 @@ /** * Variables used from the main/install/index.php. */ -$new_version = '1.11.30'; +$new_version = '1.11.32'; $new_version_status = 'stable'; $new_version_last_id = 0; $new_version_stable = true; From 431a26a8708b0f54891784614af82d123b74f189 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 10:15:33 +0200 Subject: [PATCH 08/10] CI: Fix classes feature --- tests/behat/features/class.feature | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/behat/features/class.feature b/tests/behat/features/class.feature index 02d9c852434..0a05bff7ae6 100644 --- a/tests/behat/features/class.feature +++ b/tests/behat/features/class.feature @@ -6,8 +6,7 @@ Feature: Classes Scenario: Create a class Given I am a platform administrator And I am on "/main/admin/usergroups.php?action=add" - When I fill in the following: - | name | Class 1 | - | description | class description | + When I fill "usergroup_name" with "Class 1" + And I fill "description" with "class description" And I press "submit" Then I should see "Item added" From f93c3960b676830d17a6fa7211f99ab038daef9e Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 10:31:16 +0200 Subject: [PATCH 09/10] CI: Use "not allowed" instead of "not authorized" in access company reports behat test --- tests/behat/features/accessCompanyReports.feature | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/behat/features/accessCompanyReports.feature b/tests/behat/features/accessCompanyReports.feature index 45051b605d3..cb6e1e1aedc 100644 --- a/tests/behat/features/accessCompanyReports.feature +++ b/tests/behat/features/accessCompanyReports.feature @@ -12,12 +12,12 @@ Feature: Access to portal reports as admin Scenario: Access the company report Given I am a platform administrator And I am on "/main/mySpace/company_reports.php" - Then I should not see "not authorized" + Then I should not see "not allowed" Scenario: Access the resumed version of the company report Given I am a platform administrator And I am on "/main/mySpace/company_reports_resumed.php" - Then I should not see "not authorized" + Then I should not see "not allowed" Scenario: See the company reports link on the admin page Given I am a platform administrator @@ -27,7 +27,7 @@ Feature: Access to portal reports as admin Scenario: See the company reports link on the admin page Given I am a platform administrator And I am on "/main/admin/teacher_time_report.php" - Then I should not see "not authorized" + Then I should not see "not allowed" Scenario: See the company reports link on the admin page Given I am a platform administrator @@ -37,4 +37,4 @@ Feature: Access to portal reports as admin Scenario: See the company reports link on the admin page Given I am a platform administrator And I am on "/main/admin/teachers_time_by_session_report.php" - Then I should not see "not authorized" \ No newline at end of file + Then I should not see "not allowed" \ No newline at end of file From cc625edf76dacc01b9f33cc8a18fe2698849380a Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Fri, 27 Jun 2025 11:08:11 +0200 Subject: [PATCH 10/10] CI: Use "not allowed" instead of "not authorized" in course feature --- tests/behat/features/course.feature | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/behat/features/course.feature b/tests/behat/features/course.feature index 549fc790b2d..67cd7b834fb 100644 --- a/tests/behat/features/course.feature +++ b/tests/behat/features/course.feature @@ -11,7 +11,7 @@ Feature: Course tools basic testing Scenario: See the courses list Given I am on "/main/admin/course_list.php" Then I should see "Course list" - And I should not see "not authorized" + And I should not see "not allowed" Scenario: See the course creation link on the admin page Given I am on "/main/admin/index.php" @@ -19,7 +19,7 @@ Feature: Course tools basic testing Scenario: Access the course creation page Given I am on "/main/admin/course_add.php" - Then I should not see "not authorized" + Then I should not see "not allowed" Scenario: Create a private course before testing Given I am on "/main/admin/course_add.php"