Skip to content

perf(registry): skip transparent auth for SHOW checks and menu enumeration#188

Merged
TDannhauer merged 2 commits into
FRAMEWORK_6_0from
fix/hasperm-show-skip-transparent-auth
Jul 2, 2026
Merged

perf(registry): skip transparent auth for SHOW checks and menu enumeration#188
TDannhauer merged 2 commits into
FRAMEWORK_6_0from
fix/hasperm-show-skip-transparent-auth

Conversation

@ralflang

@ralflang ralflang commented Jul 2, 2026

Copy link
Copy Markdown
Member

Horde_Registry::hasPermission() called isAuthenticated() unconditionally before checking whether the caller asked for SHOW (menu-appearance) permission.
For any horde user who doesn't have some apps/backends (i.e. no IMAP account, no IMP permission) this means trying a futile IMAP login (+ rate limiting/delay) for each page load.

Reorder the three-conjunct guard so $perms != SHOW before isAuthenticated()
listApps() now passes notransparent: true when running its internal hasPermission() check.

This might speed up page loads for non-IMP users on an IMP system up to 25x. Same for gollem.

ralflang and others added 2 commits July 2, 2026 09:58
…ation

Horde_Registry::hasPermission() called isAuthenticated() unconditionally before checking whether the caller asked for SHOW (menu-appearance) permission.
For any horde user who doesn't have some apps/backends (i.e. no IMAP account, no IMP permission) this means trying a futile IMAP login (+ rate limiting/delay) for each page load.

Reorder the three-conjunct guard so $perms != SHOW before isAuthenticated()
listApps() now passes notransparent: true when running its internal hasPermission() check.

This might speed up page loads for non-IMP users on an IMP system up to 25x. Same for gollem.
Cover SHOW skipping isAuthenticated(), READ auth guard behaviour,
notransparent parameter handling, and listApps enumeration paths.
Guards against regressions that reintroduce per-app transparent
authentication during menu SHOW checks (e.g. futile IMAP for IMP).
@TDannhauer TDannhauer merged commit babc6fd into FRAMEWORK_6_0 Jul 2, 2026
1 check failed
ralflang added a commit that referenced this pull request Jul 4, 2026
Release version 3.1.0

fix(core): bind owning app gettext domain and cover modern topbar builder
fix(core): resolve topbar/prefs app names with dgettext against owning app's domain
feat(core): throttle ActiveSync auth and harden user resolution
Merge pull request #188 from horde/fix/hasperm-show-skip-transparent-auth
test(registry): add hasPermission and listApps auth unit tests
perf(registry): skip transparent auth for SHOW checks and menu enumeration
fix: Some apps didn't show their preferences due to caching order
Use firstDescendant() to avoid an extra wrapper node
Resolve id strings before wrapping as HTML
Fix RedBox.showHtml() with HTML string content
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants