FIX: ensure the group 'everyone' is never shown when using a different locale

This commit is contained in:
Régis Hanol 2016-10-24 10:53:31 +02:00
parent dc0d302345
commit 81e2a0099f
3 changed files with 8 additions and 12 deletions

View File

@ -1,10 +1,9 @@
class Admin::GroupsController < Admin::AdminController
def index
groups = Group.order(:name).where("name <> 'everyone'")
groups = Group.order(:name).where("id <> ?", Group::AUTO_GROUPS[:everyone])
if search = params[:search]
search = search.to_s
if search = params[:search].to_s
groups = groups.where("name ILIKE ?", "%#{search}%")
end

View File

@ -149,13 +149,10 @@ class Group < ActiveRecord::Base
group.save!
end
group.name = I18n.t("groups.default_names.#{name}")
# don't allow shoddy localization to break this
validator = UsernameValidator.new(group.name)
unless validator.valid_format?
group.name = name
end
localized_name = I18n.t("groups.default_names.#{name}")
validator = UsernameValidator.new(localized_name)
group.name = validator.valid_format? ? localized_name : name
# the everyone group is special, it can include non-users so there is no
# way to have the membership in a table

View File

@ -19,7 +19,9 @@ describe Admin::GroupsController do
xhr :get, :index
expect(response.status).to eq(200)
expect(::JSON.parse(response.body).keep_if {|r| r["id"] == group.id }).to eq([{
json = ::JSON.parse(response.body)
expect(json.select { |r| r["id"] == Group::AUTO_GROUPS[:everyone] }).to be_empty
expect(json.select { |r| r["id"] == group.id }).to eq([{
"id"=>group.id,
"name"=>group.name,
"user_count"=>1,
@ -135,6 +137,4 @@ describe Admin::GroupsController do
end
end