diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 29e4e4b07..db56eff96 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -132,7 +132,7 @@ class GroupsController < ApplicationController def autocomplete_for_user @group = Group.find(params[:id]) - @users = User.active.like(params[:q]).find(:all, :limit => 100) - @group.users + @users = User.active.not_in_group(@group).like(params[:q]).all(:limit => 100) render :layout => false end diff --git a/app/models/user.rb b/app/models/user.rb index a5ec74a35..1018c33e0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -80,6 +80,10 @@ class User < Principal group_id = group.is_a?(Group) ? group.id : group.to_i { :conditions => ["#{User.table_name}.id IN (SELECT gu.user_id FROM #{table_name_prefix}groups_users#{table_name_suffix} gu WHERE gu.group_id = ?)", group_id] } } + named_scope :not_in_group, lambda {|group| + group_id = group.is_a?(Group) ? group.id : group.to_i + { :conditions => ["#{User.table_name}.id NOT IN (SELECT gu.user_id FROM #{table_name_prefix}groups_users#{table_name_suffix} gu WHERE gu.group_id = ?)", group_id] } + } def before_create self.mail_notification = Setting.default_notification_option if self.mail_notification.blank? diff --git a/app/views/groups/_users.html.erb b/app/views/groups/_users.html.erb index 580851d5a..d7c462e1b 100644 --- a/app/views/groups/_users.html.erb +++ b/app/views/groups/_users.html.erb @@ -24,7 +24,7 @@