mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:53:49 +08:00
FIX: proper handling of group memberships
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user