Feature #37674 » 0004-adds-column-and-filter-for-authentication-mode-to-ad.patch
app/models/user_query.rb | ||
---|---|---|
29 | 29 |
QueryColumn.new(:updated_on, :sortable => "#{User.table_name}.updated_on"), |
30 | 30 |
QueryColumn.new(:last_login_on, :sortable => "#{User.table_name}.last_login_on"), |
31 | 31 |
QueryColumn.new(:passwd_changed_on, :sortable => "#{User.table_name}.passwd_changed_on"), |
32 |
QueryColumn.new(:status, sortable: "#{User.table_name}.status") |
|
32 |
QueryColumn.new(:status, sortable: "#{User.table_name}.status"), |
|
33 |
QueryAssociationColumn.new(:auth_source, :name, caption: :field_auth_source, sortable: "#{AuthSource.table_name}.name") |
|
33 | 34 |
] |
34 | 35 | |
35 | 36 |
def initialize(attributes=nil, *args) |
... | ... | |
40 | 41 |
def initialize_available_filters |
41 | 42 |
add_available_filter "status", |
42 | 43 |
type: :list, values: ->{ user_statuses_values } |
44 |
add_available_filter "auth_source_id", |
|
45 |
type: :list_optional, values: ->{ auth_sources_values } |
|
43 | 46 |
add_available_filter "is_member_of_group", |
44 | 47 |
type: :list_optional, |
45 | 48 |
values: ->{ Group.givable.visible.map {|g| [g.name, g.id.to_s] } } |
... | ... | |
57 | 60 |
add_custom_fields_filters(user_custom_fields) |
58 | 61 |
end |
59 | 62 | |
63 |
def auth_sources_values |
|
64 |
AuthSource.order(name: :asc).to_a.map do |auth_source| |
|
65 |
[auth_source.name, auth_source.id] |
|
66 |
end |
|
67 |
end |
|
68 | ||
60 | 69 |
def user_statuses_values |
61 | 70 |
[ |
62 | 71 |
[l(:status_active), User::STATUS_ACTIVE.to_s], |
test/functional/users_controller_test.rb | ||
---|---|---|
134 | 134 |
end |
135 | 135 |
end |
136 | 136 | |
137 |
def test_index_filter_by_auth_source_none |
|
138 |
user = User.find(1) |
|
139 |
user.update_column :auth_source_id, 1 |
|
140 | ||
141 |
get :index, params: { |
|
142 |
set_filter: 1, |
|
143 |
f: ['auth_source_id'], op: {auth_source_id: '!*'} |
|
144 |
} |
|
145 |
assert_response :success |
|
146 | ||
147 |
assert_select 'tr.user' |
|
148 |
assert_select 'tr#user-1', 0 |
|
149 |
end |
|
150 | ||
151 |
def test_index_filter_by_auth_source |
|
152 |
user = User.find(1) |
|
153 |
user.update_column :auth_source_id, 1 |
|
154 | ||
155 |
get :index, params: { |
|
156 |
set_filter: 1, |
|
157 |
f: ['auth_source_id'], op: {auth_source_id: '='}, v: {auth_source_id: ['1']} |
|
158 |
} |
|
159 |
assert_response :success |
|
160 | ||
161 |
assert_select 'tr#user-1', 1 |
|
162 | ||
163 |
assert_select "select#add_filter_select" do |
|
164 |
assert_select "option[value=auth_source_id]" |
|
165 |
end |
|
166 |
assert_select "select#available_c" do |
|
167 |
assert_select "option[value='auth_source.name']" |
|
168 |
end |
|
169 |
end |
|
170 | ||
137 | 171 |
def test_index_csv |
138 | 172 |
with_settings :default_language => 'en' do |
139 | 173 |
user = User.logged.status(1).first |