FIX: proper handling of group memberships

This commit is contained in:
Régis Hanol
2015-01-05 18:51:45 +01:00
parent 4975fc2890
commit 060cda7772
16 changed files with 388 additions and 282 deletions

View File

@ -19,26 +19,29 @@ class GroupsController < ApplicationController
def members
group = find_group(:group_id)
members = group.users.order('username_lower asc')
limit = (params[:limit] || 50).to_i
offset = params[:offset].to_i
# TODO: We should fix the root cause of the bug where if there
# are more than 200 groups it will truncate
if group.automatic?
limit = (params[:limit] || 200).to_i
offset = (params[:offset] || 0).to_i
members = members.limit(limit).offset(offset)
end
total = group.users.count
members = group.users.order(:username_lower).limit(limit).offset(offset)
render_serialized(members.to_a, GroupUserSerializer)
render json: {
members: serialize_data(members, GroupUserSerializer),
meta: {
total: total,
limit: limit,
offset: offset
}
}
end
private
def find_group(param_name)
name = params.require(param_name)
group = Group.find_by("lower(name) = ?", name.downcase)
guardian.ensure_can_see!(group)
group
end
def find_group(param_name)
name = params.require(param_name)
group = Group.find_by("lower(name) = ?", name.downcase)
guardian.ensure_can_see!(group)
group
end
end