Repository navigation
Fix Extension Management permission validation - #12388
PooyaKharamesh wants to merge 4 commits into
Conversation
Backport the corrected permission-set checks and regression tests, including the namespace and test compilation repairs from Bug 651703. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
The |
|
This backport targets |
Good Sense Reviewer - Round 1Recommendation: Reject ChangesWhat this PR doesThis PR replaces the broad The check is centralized before extension management operations. Empty-company, system-scope matching correctly rejects company-scoped admin assignment, and the existing helper resolves effective assignments for real users. The internal test event is limited to the friend test app and does not change the public surface. Problem-solution fitFit: Strong The implementation directly addresses the reported authorization gap and handles tenant-wide scope. The target branch is not supported, so the fix is in the wrong merge channel even though the code fits the bug. SuggestionsS1 (🟠 Moderate): Cover included permission-set assignments Risk assessment and necessityRisk: Authorization is centralized across extension management operations, so a wrong check could grant unauthorized access or lock out legitimate administrators. The code is internal, uses the existing User Permissions API, and does not change public signatures. The strict build passed; the other build failures were caused by unavailable baseline artifacts. Necessity: The hardening is needed on a supported servicing branch because the old table-read proxy does not express the intended role. This backport targets
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Good Sense Reviewer - Round 2Recommendation: Reject ChangesWhat this PR doesThe new commits make the test codeunit a manual event subscriber, bind a stable authorization subscriber before the existing extension scenarios, keep permission checks on a separate codeunit instance, and reorder declarations. The production authorization logic is unchanged. The implementation still replaces application-object read access with explicit tenant-wide checks for SUPER or Exten. Mgt. - Admin. For real users, the permission API checks direct assignments and then resolves included permission sets, so composite administrator roles remain supported. Status of previous suggestions
New observations (commits since round 1)None - the changes repair the test subscriber lifecycle and declaration order without introducing a new issue. Risk assessment and necessityRisk: The authorization gate protects tenant-wide extension installation, removal, deployment, and data cleanup. The production check is narrow and supports included permission sets for real users; the remaining test gap is non-blocking. The strict build passes, while the other build failures are caused by an unavailable baseline artifact rather than an AL diagnostic. Necessity: Replacing metadata-read access as the authorization proxy is required because that permission is not extension-management authority. However, this backport targets
|
|
Closing this PR because its target branch is unsupported and will not be merged here. The authorization-hardening change and any remaining review/build follow-up will be fixed in separate PRs targeting supported branches. |
1 similar comment
|
Closing this PR because its target branch is unsupported and will not be merged here. The authorization-hardening change and any remaining review/build follow-up will be fixed in separate PRs targeting supported branches. |
Pull request was closed
Fixes missing permission validation in Extension Management.
Related to AB#648158