discourse/lib/guardian/localization_guardian.rb
Natalie Tay 3f8ccda7aa
FEATURE: Allow post authors to localize their own posts (#36178)
We should allow authors to localize their own content.

This is gated behind the
`content_localization_allow_author_localization` setting, which is
enabled by default.

Meta:
https://meta.discourse.org/t/feature-request-allow-users-to-localize-only-their-own-topics/389147
2025-11-25 11:02:22 +08:00

34 lines
1.2 KiB
Ruby
Vendored

# frozen_string_literal: true
module LocalizationGuardian
# Users that pass this guard are allowed to localize all content site-wide
def can_localize_content?
return false if !SiteSetting.content_localization_enabled
return false if anonymous?
@user.in_any_groups?(SiteSetting.content_localization_allowed_groups_map)
end
def can_localize_post?(post_or_post_id)
return false if !SiteSetting.content_localization_enabled
return false if anonymous?
return true if @user.in_any_groups?(SiteSetting.content_localization_allowed_groups_map)
return false if !SiteSetting.content_localization_allow_author_localization
post = post_or_post_id.is_a?(Post) ? post_or_post_id : Post.find_by(id: post_or_post_id)
post&.user_id == @user.id
end
def can_localize_topic?(topic_or_topic_id)
return false if !SiteSetting.content_localization_enabled
return false if anonymous?
return true if @user.in_any_groups?(SiteSetting.content_localization_allowed_groups_map)
return false if !SiteSetting.content_localization_allow_author_localization
topic =
topic_or_topic_id.is_a?(Topic) ? topic_or_topic_id : Topic.find_by(id: topic_or_topic_id)
topic&.user_id == @user.id
end
end