Merge pull request 'Admin users page: filter by username' (#242) from feature/admin_user_search into master
CI / Test (push) Successful in 34s
CI / Test (push) Successful in 34s
Reviewed-on: #242
This commit was merged in pull request #242.
This commit is contained in:
@@ -12,7 +12,11 @@ class Admin::UsersController < Admin::BaseController
|
||||
@contributors = ldap.search_users(:memberStatus, :contributor, :cn) if @show_contributors
|
||||
@sustainers = ldap.search_users(:memberStatus, :sustainer, :cn) if @show_sustainers
|
||||
@admins = ldap.search_users(:admin, true, :cn)
|
||||
@pagy, @users = pagy(User.where(ou: ou).order(cn: :asc))
|
||||
|
||||
@username = params[:username].presence
|
||||
users_scope = User.where(ou: ou).order(cn: :asc)
|
||||
users_scope = users_scope.where("cn LIKE ?", "%#{User.sanitize_sql_like(@username.downcase)}%") if @username
|
||||
@pagy, @users = pagy(users_scope)
|
||||
|
||||
@stats = {
|
||||
users_confirmed: User.where(ou: ou).confirmed.count,
|
||||
|
||||
@@ -30,6 +30,11 @@
|
||||
<% end %>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<%= render partial: "admin/username_search_form",
|
||||
locals: { path: admin_users_path } %>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<table class="divided mb-8">
|
||||
<thead>
|
||||
|
||||
@@ -15,6 +15,8 @@ RSpec.describe "Admin: User management", type: :feature do
|
||||
.and_return({ uid: user.cn, mail: user.email, display_name: "Freddy" })
|
||||
allow_any_instance_of(LdapManager::FetchAvatar).to receive(:call)
|
||||
.and_return(nil)
|
||||
allow_any_instance_of(LdapService).to receive(:search_users)
|
||||
.and_return([])
|
||||
|
||||
login_as admin, :scope => :user
|
||||
end
|
||||
@@ -43,6 +45,30 @@ RSpec.describe "Admin: User management", type: :feature do
|
||||
expect(user.invitations.count).to eq(5)
|
||||
end
|
||||
|
||||
describe "User index page" do
|
||||
it "lists all users" do
|
||||
visit admin_users_path
|
||||
|
||||
expect(page).to have_link "jimmy"
|
||||
expect(page).to have_link "alfred"
|
||||
end
|
||||
|
||||
scenario 'Filter users by username' do
|
||||
visit admin_users_path
|
||||
|
||||
fill_in "username", with: "alf"
|
||||
click_button "Filter"
|
||||
|
||||
expect(page).to have_link "alfred"
|
||||
expect(page).to have_no_link "jimmy"
|
||||
|
||||
click_link "Remove filter"
|
||||
|
||||
expect(page).to have_link "jimmy"
|
||||
expect(page).to have_link "alfred"
|
||||
end
|
||||
end
|
||||
|
||||
scenario 'Remove invitations from account' do
|
||||
3.times { Invitation.create(user: user) }
|
||||
expect(user.invitations.count).to eq(3)
|
||||
|
||||
Reference in New Issue
Block a user