DEV: Remove backward-compatibility code now that 2.4 is the new stable

This commit is contained in:
romanrizzi 2020-03-02 10:53:39 -03:00
parent 3675a5e273
commit 2adcd9a832
3 changed files with 28 additions and 60 deletions

View File

@ -23,12 +23,6 @@ Discourse::Application.routes.append do
get "topics/messages-assigned/:username" => "list#messages_assigned", as: "topics_messages_assigned", constraints: { username: ::RouteFormat.username } get "topics/messages-assigned/:username" => "list#messages_assigned", as: "topics_messages_assigned", constraints: { username: ::RouteFormat.username }
end end
# TODO: Remove this once 2.4.0.beta3 is released.
# HACK: Checking if the file exists, this means we can assume the migration happenned
above_min_version = File.exist?(
File.expand_path('../../../db/migrate/20190717133743_migrate_group_list_site_settings.rb', __FILE__)
)
after_initialize do after_initialize do
require File.expand_path('../jobs/scheduled/enqueue_reminders.rb', __FILE__) require File.expand_path('../jobs/scheduled/enqueue_reminders.rb', __FILE__)
require File.expand_path('../jobs/regular/remind_user.rb', __FILE__) require File.expand_path('../jobs/regular/remind_user.rb', __FILE__)
@ -46,12 +40,9 @@ after_initialize do
self.value = self.value.to_i if self.name == frequency_field self.value = self.value.to_i if self.name == frequency_field
end end
# TODO: Remove this once 2.4 becomes the new stable.
attribute = above_min_version ? 'id' : 'name'
add_class_method(:group, :assign_allowed_groups) do add_class_method(:group, :assign_allowed_groups) do
allowed_groups = SiteSetting.assign_allowed_on_groups.split('|') allowed_groups = SiteSetting.assign_allowed_on_groups.split('|')
where("groups.#{attribute} IN (?)", allowed_groups) where(id: allowed_groups)
end end
add_to_class(:user, :can_assign?) do add_to_class(:user, :can_assign?) do
@ -59,7 +50,7 @@ after_initialize do
begin begin
return true if admin? return true if admin?
allowed_groups = SiteSetting.assign_allowed_on_groups.split('|').compact allowed_groups = SiteSetting.assign_allowed_on_groups.split('|').compact
allowed_groups.present? && groups.where("groups.#{attribute} in (?)", allowed_groups).exists? ? allowed_groups.present? && groups.where(id: allowed_groups).exists? ?
:true : :false :true : :false
end end
@can_assign == :true @can_assign == :true
@ -72,19 +63,18 @@ after_initialize do
where("users.admin OR users.id IN ( where("users.admin OR users.id IN (
SELECT user_id FROM group_users SELECT user_id FROM group_users
INNER JOIN groups ON group_users.group_id = groups.id INNER JOIN groups ON group_users.group_id = groups.id
WHERE groups.#{attribute} IN (?) WHERE groups.id IN (?)
)", allowed_groups) )", allowed_groups)
end end
add_model_callback(Group, :before_update) do add_model_callback(Group, :before_update) do
if !above_min_version && name_changed? if name_changed?
SiteSetting.assign_allowed_on_groups = SiteSetting.assign_allowed_on_groups.gsub(name_was, name) SiteSetting.assign_allowed_on_groups = SiteSetting.assign_allowed_on_groups.gsub(name_was, name)
end end
end end
add_model_callback(Group, :before_destroy) do add_model_callback(Group, :before_destroy) do
to_remove = above_min_version ? id : name new_setting = SiteSetting.assign_allowed_on_groups.gsub(/#{id}[|]?/, '')
new_setting = SiteSetting.assign_allowed_on_groups.gsub(/#{to_remove}[|]?/, '')
new_setting = new_setting.chomp('|') if new_setting.ends_with?('|') new_setting = new_setting.chomp('|') if new_setting.ends_with?('|')
SiteSetting.assign_allowed_on_groups = new_setting SiteSetting.assign_allowed_on_groups = new_setting
end end
@ -268,8 +258,6 @@ after_initialize do
id && id.to_i rescue nil id && id.to_i rescue nil
end end
# TODO: Remove this when 2.4 becomes the new stable
if self.respond_to?(:add_custom_reviewable_filter)
add_custom_reviewable_filter( add_custom_reviewable_filter(
[ [
:assigned_to, :assigned_to,
@ -287,7 +275,6 @@ after_initialize do
end end
] ]
) )
end
on(:post_created) do |post| on(:post_created) do |post|
::TopicAssigner.auto_assign(post, force: true) ::TopicAssigner.auto_assign(post, force: true)

View File

@ -10,15 +10,8 @@ RSpec.describe Group do
SiteSetting.assign_enabled = true SiteSetting.assign_enabled = true
end end
let(:above_min_version) do let(:removed_group_setting) { '3|4' }
min_version = 201_907_171_337_43 let(:group_attribute) { group.id }
migrated_site_setting = DB.query_single(
"SELECT schema_migrations.version FROM schema_migrations WHERE schema_migrations.version = '#{min_version}'"
).first.present?
end
let(:removed_group_setting) { above_min_version ? '3|4' : 'staff|moderators' }
let(:group_attribute) { above_min_version ? group.id : group.name }
it 'removes the group from the setting when the group gets destroyed' do it 'removes the group from the setting when the group gets destroyed' do
SiteSetting.assign_allowed_on_groups = "#{group_attribute}|#{removed_group_setting}" SiteSetting.assign_allowed_on_groups = "#{group_attribute}|#{removed_group_setting}"
@ -37,7 +30,7 @@ RSpec.describe Group do
end end
it 'removes the group from the list when it is on the middle of the list' do it 'removes the group from the list when it is on the middle of the list' do
allowed_groups = above_min_version ? "3|#{group_attribute}|4" : "staff|#{group_attribute}|moderators" allowed_groups = "3|#{group_attribute}|4"
SiteSetting.assign_allowed_on_groups = allowed_groups SiteSetting.assign_allowed_on_groups = allowed_groups
group.destroy! group.destroy!

View File

@ -12,13 +12,6 @@ RSpec.describe DiscourseAssign::AssignController do
let(:post) { Fabricate(:post) } let(:post) { Fabricate(:post) }
let(:user2) { Fabricate(:active_user) } let(:user2) { Fabricate(:active_user) }
let(:above_min_version) do
min_version = 201_907_171_337_43
DB.query_single(
"SELECT schema_migrations.version FROM schema_migrations WHERE schema_migrations.version = '#{min_version}'"
).first.present?
end
describe 'only allow users from allowed groups' do describe 'only allow users from allowed groups' do
before { sign_in(user2) } before { sign_in(user2) }
@ -39,11 +32,7 @@ RSpec.describe DiscourseAssign::AssignController do
allowed_group = Group.find_by(name: 'everyone') allowed_group = Group.find_by(name: 'everyone')
allowed_group.add(user2) allowed_group.add(user2)
defaults = if above_min_version defaults = "#{default_allowed_group.id}|#{allowed_group.id}"
"#{default_allowed_group.id}|#{allowed_group.id}"
else
"#{default_allowed_group.name}|#{allowed_group.name}"
end
SiteSetting.assign_allowed_on_groups = defaults SiteSetting.assign_allowed_on_groups = defaults
TopicAssigner.new(post.topic, user).assign(user2) TopicAssigner.new(post.topic, user).assign(user2)
@ -57,7 +46,7 @@ RSpec.describe DiscourseAssign::AssignController do
it 'does not include users from disallowed groups' do it 'does not include users from disallowed groups' do
allowed_group = Group.find_by(name: 'everyone') allowed_group = Group.find_by(name: 'everyone')
allowed_group.add(user2) allowed_group.add(user2)
SiteSetting.assign_allowed_on_groups = above_min_version ? default_allowed_group.id.to_s : default_allowed_group.name SiteSetting.assign_allowed_on_groups = default_allowed_group.id.to_s
TopicAssigner.new(post.topic, user).assign(user2) TopicAssigner.new(post.topic, user).assign(user2)
get '/assign/suggestions.json' get '/assign/suggestions.json'
@ -71,8 +60,7 @@ RSpec.describe DiscourseAssign::AssignController do
visible_group.add(user) visible_group.add(user)
invisible_group = Fabricate(:group, members_visibility_level: Group.visibility_levels[:members]) invisible_group = Fabricate(:group, members_visibility_level: Group.visibility_levels[:members])
SiteSetting.assign_allowed_on_groups = above_min_version ? "#{visible_group.id}|#{invisible_group.id}" SiteSetting.assign_allowed_on_groups = "#{visible_group.id}|#{invisible_group.id}"
: "#{visible_group.name}|#{invisible_group.name}"
get '/assign/suggestions.json' get '/assign/suggestions.json'
assign_allowed_on_groups = JSON.parse(response.body)['assign_allowed_on_groups'] assign_allowed_on_groups = JSON.parse(response.body)['assign_allowed_on_groups']