mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-22 22:36:11 +08:00
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
34 lines
1.2 KiB
Ruby
Vendored
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
|