users_controller.rb 803 B

1234567891011121314151617181920212223242526272829303132
  1. class Admin::UsersController < Admin::ApplicationController
  2. def index
  3. @users = filtered_users.order(created_at: :desc).paginate(page: params[:page])
  4. end
  5. def update
  6. user = User.find(params[:id])
  7. if user.update_attributes(user_params)
  8. flash[:notice] = "#{user.email} was updated"
  9. else
  10. flash[:error] = "Could not update #{user.email}"
  11. end
  12. redirect_to admin_users_path(params.permit(:query, :page).to_h.merge(anchor: "users"))
  13. end
  14. private
  15. def filtered_users
  16. if params[:query].present?
  17. User.where("LOWER(email) LIKE ? OR LOWER(first_name || ' ' || last_name) LIKE ?",
  18. "%#{params[:query]}%", "%#{params[:query]}%")
  19. else
  20. User.all
  21. end
  22. end
  23. def user_params
  24. params.require(:user).permit(:collaborator)
  25. end
  26. end