MDL-84126 tiny_equation: Capability check added

This commit is contained in:
David Woloszyn
2025-03-04 15:02:55 +11:00
parent ec03d02879
commit b79f5b894a
4 changed files with 73 additions and 1 deletions
@@ -0,0 +1,35 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Capabilities for the tiny_equation plugin.
*
* @package tiny_equation
* @copyright 2025 David Woloszyn <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$capabilities = [
'tiny/equation:use' => [
'captype' => 'read',
'contextlevel' => CONTEXT_USER,
'archetypes' => [
'user' => CAP_ALLOW,
],
],
];
@@ -25,6 +25,7 @@
$string['buttontitle'] = 'Equation editor';
$string['cursorinfo'] = 'An arrow indicates the position that new elements from the element library will be inserted.';
$string['editequation'] = 'Edit equation using <a href="{$a}" target="_blank">TeX</a>';
$string['equation:use'] = 'Use TinyMCE equation editor';
$string['librarygroup1'] = 'Operators';
$string['librarygroup1_desc'] = 'TeX commands listed on the operators tab.';
$string['librarygroup2'] = 'Arrows';
@@ -34,3 +34,39 @@ Feature: Equation editor
Then the field "Edit equation using" matches value " \pi "
And I click on "Save equation" "button"
And the field "Description" matches value "<p>\( \pi \)</p>"
@javascript
Scenario: Permissions can be configured to control access to equation editor
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
| teacher2 | Teacher | 2 | teacher2@example.com |
And the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "roles" exist:
| name | shortname | description | archetype |
| Custom teacher | custom1 | Limited permissions | editingteacher |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| teacher2 | C1 | custom1 |
And the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Test assignment |
And the following "permission overrides" exist:
| capability | permission | role | contextlevel | reference |
| tiny/equation:use | Prohibit | custom1 | Course | C1 |
# Check plugin access as a role with prohibited permissions.
And I log in as "teacher2"
And I am on the "Test assignment" Activity page
And I navigate to "Settings" in current page administration
When I click on the "Insert" menu item for the "Activity instructions" TinyMCE editor
Then I should not see "Equation editor"
# Check plugin access as a role with allowed permissions.
And I log in as "teacher1"
And I am on the "Test assignment" Activity page
And I navigate to "Settings" in current page administration
And I click on the "Insert" menu item for the "Activity instructions" TinyMCE editor
And I should see "Equation editor"
+1 -1
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2024121800;
$plugin->version = 2025012300;
$plugin->requires = 2024100100;
$plugin->component = 'tiny_equation';