MDL-84126 tiny_html: Capability check added

This commit is contained in:
David Woloszyn
2025-03-04 15:02:55 +11:00
parent b79f5b894a
commit b5d8bdcbe2
4 changed files with 74 additions and 1 deletions
@@ -22,3 +22,40 @@ Feature: Edit HTML in TinyMCE
<p>This is my draft</p>
</div>
"""
Scenario: Permissions can be configured to control access to HTML features
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/html: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
And I set the field "Activity instructions" to "<div><p>This is my draft</p></div>"
When I click on the "View > Source code" menu item for the "Activity instructions" TinyMCE editor
Then "#id_activityeditor_codeMirrorContainer" "css_element" should not exist
# 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 set the field "Activity instructions" to "<div><p>This is my draft</p></div>"
And I click on the "View > Source code" menu item for the "Activity instructions" TinyMCE editor
And "#id_activityeditor_codeMirrorContainer" "css_element" should exist