diff --git a/assets/javascripts/discourse-assign/connectors/above-review-filters/assigned-to-filter.hbs b/assets/javascripts/discourse-assign/connectors/above-review-filters/assigned-to-filter.hbs
new file mode 100644
index 0000000..f0d83f4
--- /dev/null
+++ b/assets/javascripts/discourse-assign/connectors/above-review-filters/assigned-to-filter.hbs
@@ -0,0 +1,16 @@
+
+
+ {{user-selector
+ single=true
+ fullWidthWrap=true
+ allowAny=false
+ group="staff"
+ groupMembersOf=allowedGroups
+ excludeCurrentUser=false
+ includeMentionableGroups=false
+ hasGroups=false
+ usernames=additionalFilters.assigned_to
+ placeholderKey=placeholderKey
+ autocomplete="off"
+ }}
+
\ No newline at end of file
diff --git a/assets/javascripts/discourse-assign/connectors/above-review-filters/assigned-to-filter.js.es6 b/assets/javascripts/discourse-assign/connectors/above-review-filters/assigned-to-filter.js.es6
new file mode 100644
index 0000000..a7a82a0
--- /dev/null
+++ b/assets/javascripts/discourse-assign/connectors/above-review-filters/assigned-to-filter.js.es6
@@ -0,0 +1,13 @@
+export default {
+ shouldRender(args) {
+ return args.additionalFilters;
+ },
+
+ setupComponent(args, component) {
+ const groupIDs = component.siteSettings.assign_allowed_on_groups.split("|");
+ const groupNames = this.site.groups
+ .filter(group => groupIDs.includes(group.id.toString()))
+ .map(group => group.name);
+ component.set("allowedGroups", groupNames);
+ }
+};
diff --git a/plugin.rb b/plugin.rb
index 425d733..ba558f1 100644
--- a/plugin.rb
+++ b/plugin.rb
@@ -268,6 +268,27 @@ after_initialize do
id && id.to_i rescue nil
end
+ # TODO: Remove this when 2.4 becomes the new stable
+ if self.respond_to?(:add_custom_reviewable_filter)
+ add_custom_reviewable_filter(
+ [
+ :assigned_to,
+ Proc.new do |results, value|
+ results.joins(<<~SQL
+ INNER JOIN posts p ON p.id = target_id
+ INNER JOIN topics t ON t.id = p.topic_id
+ INNER JOIN topic_custom_fields tcf ON tcf.topic_id = t.id
+ INNER JOIN users u ON u.id = tcf.value::integer
+ SQL
+ )
+ .where(target_type: Post.name)
+ .where('tcf.name = ?', TopicAssigner::ASSIGNED_TO_ID)
+ .where('u.username = ?', value)
+ end
+ ]
+ )
+ end
+
on(:post_created) do |post|
::TopicAssigner.auto_assign(post, force: true)
end