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)
|
||||
|
||||
add_to_class(:user, :can_assign?) do
|
||||
allowed_groups = SiteSetting.assign_allowed_on_groups.split('|')
|
||||
(groups.pluck(:name) & allowed_groups).present?
|
||||
@can_assign ||=
|
||||
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
|
||||
|
||||
add_to_class(:guardian, :can_assign?) { user && user.can_assign? }
|
||||
|
|
Loading…
Reference in New Issue