summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-01 16:47:30 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-01 16:47:30 +0000
commitb972b5a647cae4cef4dfeb9686cb529705886107 (patch)
tree7ed1e980c1183c6e6c254f383d5e358556eba18e /app
parent4e7835c68c7dc6e1011f6513971f5561fcfd172d (diff)
downloadredmine-b972b5a647cae4cef4dfeb9686cb529705886107.tar.gz
redmine-b972b5a647cae4cef4dfeb9686cb529705886107.zip
Fixed: list of users for adding to a group may be empty if 100 first users have been added (#8029).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5284 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/controllers/groups_controller.rb2
-rw-r--r--app/models/user.rb4
-rw-r--r--app/views/groups/_users.html.erb2
3 files changed, 6 insertions, 2 deletions
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 @@
</div>
<div class="splitcontentright">
-<% users = User.active.find(:all, :limit => 100) - @group.users %>
+<% users = User.active.not_in_group(@group).all(:limit => 100) %>
<% if users.any? %>
<% remote_form_for(:group, @group, :url => {:controller => 'groups', :action => 'add_users', :id => @group}, :method => :post) do |f| %>
<fieldset><legend><%=l(:label_user_new)%></legend>