From f4d5cfac643221eb89325fa5ca9954daafebc555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marius=20B=C4=82LTEANU?= Date: Mon, 31 Aug 2026 09:08:59 +0300 Subject: [PATCH 1/2] Memoize user object visibility check in link_to_mention Caches object.visible?(user) per object and user ID to avoid duplicate permission checks when users are mentioned repeatedly across notes or sections. --- app/helpers/application_helper.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 7a13bbb0e..5d5d680f5 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -83,7 +83,11 @@ module ApplicationHelper css_classes = ['user-mention'] if user.is_a?(User) css_classes << 'user-current' if user == User.current - css_classes << 'user-mentionable' if object.respond_to?(:visible?) && object.visible?(user) + if object.respond_to?(:visible?) + @mention_visible_cache ||= {} + is_visible = @mention_visible_cache[[object, user.id]] ||= object.visible?(user) + css_classes << 'user-mentionable' if is_visible + end end link_to_user(user, only_path: options[:only_path], class: css_classes.join(' '), mention: true) -- 2.50.1 (Apple Git-155)