Branch: refs/heads/master
Home: https://github.com/xwiki/xwiki-platform
Commit: 31d369994b7aec3cae6e06e6e0ce75ee4d8e90eb
https://github.com/xwiki/xwiki-platform/commit/31d369994b7aec3cae6e06e6e0ce…
Author: Michael Hamann <michael.hamann(a)xwiki.com>
Date: 2023-10-20 (Fri, 20 Oct 2023)
Changed paths:
M xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-groovy/src/main/java/org/xwiki/rendering/internal/macro/groovy/GroovyMacroPermissionPolicy.java
A xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-groovy/src/test/java/org/xwiki/rendering/internal/macro/groovy/GroovyMacroPermissionPolicyTest.java
M xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/AbstractScriptCheckerListener.java
M xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/DefaultScriptMacroPermissionPolicy.java
M xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/MacroPermissionPolicy.java
A xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/test/java/org/xwiki/rendering/internal/macro/script/DefaultScriptMacroPermissionPolicyTest.java
M xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-velocity/src/main/java/org/xwiki/rendering/internal/macro/velocity/VelocityMacroPermissionPolicy.java
M xwiki-platform-core/xwiki-platform-security/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-api/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-api/src/main/java/org/xwiki/platform/security/requiredrights/RequiredRight.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-api/src/main/java/org/xwiki/platform/security/requiredrights/RequiredRightAnalysisResult.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-api/src/main/java/org/xwiki/platform/security/requiredrights/RequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-api/src/main/java/org/xwiki/platform/security/requiredrights/RequiredRightsException.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/RequiredRightsChangedFilter.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/RequiredRightsChangedResult.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/RequiredRightsEditConfirmationChecker.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/VelocityUtil.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/AbstractMacroBlockRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/DefaultMacroBlockRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/DefaultObjectRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/RequiredRightObjectRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/ScriptMacroAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/SkinExtensionObjectRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/XDOMRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/analyzer/XWikiDocumentRequiredRightAnalyzer.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/configuration/DefaultRequiredRightsConfiguration.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/configuration/RequiredRightsConfiguration.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/provider/AbstractBlockSupplierProvider.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/provider/BlockSupplierProvider.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/provider/MacroDisplayerProvider.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/provider/StringCodeBlockSupplierProvider.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/provider/TranslationMessageSupplierProvider.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/java/org/xwiki/platform/security/requiredrights/internal/provider/XObjectDisplayerProvider.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/resources/ApplicationResources.properties
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/resources/META-INF/components.txt
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/resources/css/security/requiredrights/requiredRightsEditConfirmationChecker.css
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/resources/templates/security/requiredrights/requiredRightsEditConfirmationChecker.vm
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/main/resources/templates/security/requiredrights/requiredRightsEditConfirmationCheckerError.vm
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/RequiredRightsChangedFilterTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/RequiredRightsEditConfirmationCheckerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/DefaultMacroBlockRequiredRightAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/DefaultObjectRequiredRightAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/RequiredRightObjectRequiredRightAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/ScriptMacroAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/SkinExtensionObjectRequiredRightAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/XDOMRequiredRightAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/analyzer/XWikiDocumentRequiredRightAnalyzerTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/provider/MacroDisplayerProviderTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-default/src/test/java/org/xwiki/platform/security/requiredrights/internal/provider/XObjectDisplayerProviderTest.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-test/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-test/xwiki-platform-security-requiredrights-test-docker/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-test/xwiki-platform-security-requiredrights-test-docker/src/test/it/org/xwiki/security/requiredrights/test/ui/AllIT.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-test/xwiki-platform-security-requiredrights-test-docker/src/test/it/org/xwiki/security/requiredrights/test/ui/RequiredRightsIT.java
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-test/xwiki-platform-security-requiredrights-test-pageobjects/pom.xml
A xwiki-platform-core/xwiki-platform-security/xwiki-platform-security-requiredrights/xwiki-platform-security-requiredrights-test/xwiki-platform-security-requiredrights-test-pageobjects/src/main/java/org/xwiki/security/requiredrights/test/po/RequiredRightsPreEditCheckElement.java
M xwiki-platform-distribution/xwiki-platform-distribution-flavor/xwiki-platform-distribution-flavor-common/pom.xml
M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm
Log Message:
-----------
XWIKI-21311: Introduce a required rights analyzer (#2470)
* Add a new method `getRequiredRight` to `MacroPermissionPolicy` and implement it for the different script macros
* Introduce a RequiredRightAnalyzer role to analyze the rights that are required by a document, macro or XObject
* Add generic analyzers for macros and objects
* Add generic script macro support
* Add an analyzer for XWiki.RequiredRightClass
* Add an analyzer for skin extensions
* Add a component for printing the content of an XObject
* Add a component for printing macro parameters and content.
* Introduce RequiredRightsEditConfirmationChecker
* Introduce RequiredRightsAddedFilter to filter results according to the document author
* package the UI by default in xwiki-platform-distribution-flavor-common
* Minimal docker test + Page objects
* Introduce a configuration to enable the required right analysis, disabled by default as long as it is incomplete and not polished
---------
Co-authored-by: Manuel Leduc <manuel.leduc(a)xwiki.com>