PERF: remove N+1 query from assign
Also makes looking for allowed groups much more efficient
This commit is contained in:
parent
f312ece4a9
commit
fe746fefc0
|
@ -49,8 +49,13 @@ after_initialize do
|
||||||
reviewable_api_enabled = defined?(Reviewable)
|
reviewable_api_enabled = defined?(Reviewable)
|
||||||
|
|
||||||
add_to_class(:user, :can_assign?) do
|
add_to_class(:user, :can_assign?) do
|
||||||
allowed_groups = SiteSetting.assign_allowed_on_groups.split('|')
|
@can_assign ||=
|
||||||
(groups.pluck(:name) & allowed_groups).present?
|
begin
|
||||||
|
allowed_groups = SiteSetting.assign_allowed_on_groups.split('|').compact
|
||||||
|
allowed_groups.present? && groups.where('name in (?)', allowed_groups).exists? ?
|
||||||
|
:true : :false
|
||||||
|
end
|
||||||
|
@can_assign == :true
|
||||||
end
|
end
|
||||||
|
|
||||||
add_to_class(:guardian, :can_assign?) { user && user.can_assign? }
|
add_to_class(:guardian, :can_assign?) { user && user.can_assign? }
|
||||||
|
|
Loading…
Reference in New Issue