discourse/app/models/concerns/limited_edit.rb

31 lines
827 B
Ruby

# frozen_string_literal: true
module LimitedEdit
extend ActiveSupport::Concern
def edit_time_limit_expired?(user)
return true if !trusted_with_edits?(user)
time_limit = user_time_limit(user)
created_at && (time_limit > 0) && (created_at < time_limit.minutes.ago)
end
private
# TODO: This duplicates some functionality from PostGuardian. This should
# probably be checked there instead, because this has nothing to do
# with time limits.
#
def trusted_with_edits?(user)
user.trust_level >= SiteSetting.min_trust_to_edit_post ||
user.in_any_groups?(SiteSetting.edit_post_allowed_groups_map)
end
def user_time_limit(user)
if user.trust_level < 2
SiteSetting.post_edit_time_limit.to_i
else
SiteSetting.tl2_post_edit_time_limit.to_i
end
end
end