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
|
@contributors = ldap.search_users(:memberStatus, :contributor, :cn) if @show_contributors
|
||||||
@sustainers = ldap.search_users(:memberStatus, :sustainer, :cn) if @show_sustainers
|
@sustainers = ldap.search_users(:memberStatus, :sustainer, :cn) if @show_sustainers
|
||||||
@admins = ldap.search_users(:admin, true, :cn)
|
@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 = {
|
@stats = {
|
||||||
users_confirmed: User.where(ou: ou).confirmed.count,
|
users_confirmed: User.where(ou: ou).confirmed.count,
|
||||||
|
|||||||
@@ -30,6 +30,11 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<%= render partial: "admin/username_search_form",
|
||||||
|
locals: { path: admin_users_path } %>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<table class="divided mb-8">
|
<table class="divided mb-8">
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ RSpec.describe "Admin: User management", type: :feature do
|
|||||||
.and_return({ uid: user.cn, mail: user.email, display_name: "Freddy" })
|
.and_return({ uid: user.cn, mail: user.email, display_name: "Freddy" })
|
||||||
allow_any_instance_of(LdapManager::FetchAvatar).to receive(:call)
|
allow_any_instance_of(LdapManager::FetchAvatar).to receive(:call)
|
||||||
.and_return(nil)
|
.and_return(nil)
|
||||||
|
allow_any_instance_of(LdapService).to receive(:search_users)
|
||||||
|
.and_return([])
|
||||||
|
|
||||||
login_as admin, :scope => :user
|
login_as admin, :scope => :user
|
||||||
end
|
end
|
||||||
@@ -43,6 +45,30 @@ RSpec.describe "Admin: User management", type: :feature do
|
|||||||
expect(user.invitations.count).to eq(5)
|
expect(user.invitations.count).to eq(5)
|
||||||
end
|
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
|
scenario 'Remove invitations from account' do
|
||||||
3.times { Invitation.create(user: user) }
|
3.times { Invitation.create(user: user) }
|
||||||
expect(user.invitations.count).to eq(3)
|
expect(user.invitations.count).to eq(3)
|
||||||
|
|||||||
Reference in New Issue
Block a user