From 29d994dd4a764ec94b30676597fe0ab5a907a2d4 Mon Sep 17 00:00:00 2001 From: Amaia Castro Date: Thu, 25 May 2017 12:35:14 +0200 Subject: [PATCH 1/3] Rename users to hidden users in admin --- ...ntroller.rb => hidden_users_controller.rb} | 4 +-- app/helpers/admin_helper.rb | 2 +- app/views/admin/_menu.html.erb | 4 +-- .../_written_by_author.html.erb | 2 +- .../{users => hidden_users}/index.html.erb | 10 +++---- .../{users => hidden_users}/show.html.erb | 8 +++--- .../_written_by_author.html.erb | 2 +- app/views/admin/verifications/index.html.erb | 4 +-- config/i18n-tasks.yml | 2 +- config/locales/admin.en.yml | 26 +++++++++---------- config/locales/admin.es.yml | 26 +++++++++---------- config/routes.rb | 2 +- spec/features/admin/activity_spec.rb | 4 +-- .../{users_spec.rb => hidden_users_spec.rb} | 22 ++++++++-------- 14 files changed, 59 insertions(+), 59 deletions(-) rename app/controllers/admin/{users_controller.rb => hidden_users_controller.rb} (92%) rename app/views/admin/{users => hidden_users}/index.html.erb (62%) rename app/views/admin/{users => hidden_users}/show.html.erb (64%) rename spec/features/admin/{users_spec.rb => hidden_users_spec.rb} (82%) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/hidden_users_controller.rb similarity index 92% rename from app/controllers/admin/users_controller.rb rename to app/controllers/admin/hidden_users_controller.rb index 1e17e1c2d..8237b7fd4 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/hidden_users_controller.rb @@ -1,4 +1,4 @@ -class Admin::UsersController < Admin::BaseController +class Admin::HiddenUsersController < Admin::BaseController has_filters %w{without_confirmed_hide all with_confirmed_hide}, only: :index before_action :load_user, only: [:confirm_hide, :restore] @@ -30,4 +30,4 @@ class Admin::UsersController < Admin::BaseController @user = User.with_hidden.find(params[:id]) end -end \ No newline at end of file +end diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index 8ca439a1c..ad5dccc73 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -17,7 +17,7 @@ module AdminHelper end def menu_moderated_content? - ["proposals", "debates", "comments", "users"].include? controller_name + ["proposals", "debates", "comments", "hidden_users"].include? controller_name end def menu_budget? diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index 5d454fcd8..573e66a16 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -33,8 +33,8 @@ <%= link_to t("admin.menu.hidden_comments"), admin_comments_path %> -
  • > - <%= link_to t("admin.menu.hidden_users"), admin_users_path %> +
  • > + <%= link_to t("admin.menu.hidden_users"), admin_hidden_users_path %>
  • diff --git a/app/views/admin/budget_investments/_written_by_author.html.erb b/app/views/admin/budget_investments/_written_by_author.html.erb index b2c46c6f5..2ecfa2068 100644 --- a/app/views/admin/budget_investments/_written_by_author.html.erb +++ b/app/views/admin/budget_investments/_written_by_author.html.erb @@ -16,7 +16,7 @@

    <%= t("admin.budget_investments.show.by") %>: - <%= link_to @investment.author.name, admin_user_path(@investment.author) %> + <%= link_to @investment.author.name, admin_hidden_user_path(@investment.author) %>

    diff --git a/app/views/admin/users/index.html.erb b/app/views/admin/hidden_users/index.html.erb similarity index 62% rename from app/views/admin/users/index.html.erb rename to app/views/admin/hidden_users/index.html.erb index 336443055..21bf016e4 100644 --- a/app/views/admin/users/index.html.erb +++ b/app/views/admin/hidden_users/index.html.erb @@ -1,6 +1,6 @@ -

    <%= t("admin.users.index.title") %>

    +

    <%= t("admin.hidden_users.index.title") %>

    -<%= render 'shared/filter_subnav', i18n_namespace: "admin.users.index" %> +<%= render 'shared/filter_subnav', i18n_namespace: "admin.hidden_users.index" %>

    <%= page_entries_info @users %>

    @@ -8,18 +8,18 @@ <% @users.each do |user| %> -

    <%= link_to user.name, admin_user_path(user) %>

    +

    <%= link_to user.name, admin_hidden_user_path(user) %>

    <%= link_to t("admin.actions.restore"), - restore_admin_user_path(user, request.query_parameters), + restore_admin_hidden_user_path(user, request.query_parameters), method: :put, data: { confirm: t("admin.actions.confirm") }, class: "button hollow on-hover" %> <% unless user.confirmed_hide? %> <%= link_to t("admin.actions.confirm_hide"), - confirm_hide_admin_user_path(user, request.query_parameters), + confirm_hide_admin_hidden_user_path(user, request.query_parameters), method: :put, class: "button hollow warning on-hover" %> <% end %> diff --git a/app/views/admin/users/show.html.erb b/app/views/admin/hidden_users/show.html.erb similarity index 64% rename from app/views/admin/users/show.html.erb rename to app/views/admin/hidden_users/show.html.erb index 1a6ab9795..9fe69ef44 100644 --- a/app/views/admin/users/show.html.erb +++ b/app/views/admin/hidden_users/show.html.erb @@ -1,11 +1,11 @@ <%= render 'shared/back_link' %> -

    <%= t("admin.users.show.title", user: @user.name) %>

    +

    <%= t("admin.hidden_users.show.title", user: @user.name) %>

    - <%= t("admin.users.show.email") %> <%= @user.email %> | - <%= t("admin.users.show.registered_at") %> <%= @user.confirmed_at %> | - <%= t("admin.users.show.hidden_at") %> <%= @user.hidden_at %> + <%= t("admin.hidden_users.show.email") %> <%= @user.email %> | + <%= t("admin.hidden_users.show.registered_at") %> <%= @user.confirmed_at %> | + <%= t("admin.hidden_users.show.hidden_at") %> <%= @user.hidden_at %>

    <% if @debates.present? %> diff --git a/app/views/admin/spending_proposals/_written_by_author.html.erb b/app/views/admin/spending_proposals/_written_by_author.html.erb index 8440666e5..acb7db69c 100644 --- a/app/views/admin/spending_proposals/_written_by_author.html.erb +++ b/app/views/admin/spending_proposals/_written_by_author.html.erb @@ -16,7 +16,7 @@

    <%= t("admin.spending_proposals.show.by") %>: - <%= link_to @spending_proposal.author.name, admin_user_path(@spending_proposal.author) %> + <%= link_to @spending_proposal.author.name, admin_hidden_user_path(@spending_proposal.author) %>

    diff --git a/app/views/admin/verifications/index.html.erb b/app/views/admin/verifications/index.html.erb index 97cca3a4e..c8b2c6ade 100644 --- a/app/views/admin/verifications/index.html.erb +++ b/app/views/admin/verifications/index.html.erb @@ -8,7 +8,7 @@ <% @users.each do |user| %> - <%= link_to user.name, admin_user_path(user) %> + <%= link_to user.name, admin_hidden_user_path(user) %> <%= render "pending_step", user: user %> @@ -17,4 +17,4 @@ <% end %> -<%= paginate @users %> \ No newline at end of file +<%= paginate @users %> diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 56cc52a78..7ef52a670 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -126,7 +126,7 @@ ignore_unused: - 'admin.budget_investments.index.filter*' - 'admin.spending_proposals.index.filter*' - 'admin.organizations.index.filter*' - - 'admin.users.index.filter*' + - 'admin.hidden_users.index.filter*' - 'admin.activity.show.filter*' - 'admin.legislation.processes.index.filter*' - 'admin.legislation.processes.*.submit_button' diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index 1f7eef0a5..fa353ec63 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -181,6 +181,19 @@ en: with_confirmed_hide: Confirmed without_confirmed_hide: Pending title: Hidden debates + hidden_users: + index: + filter: Filter + filters: + all: All + with_confirmed_hide: Confirmed + without_confirmed_hide: Pending + title: Hidden users + show: + email: 'Email:' + hidden_at: 'Hidden at:' + registered_at: 'Registered at:' + title: Activity of user (%{user}) legislation: processes: create: @@ -803,19 +816,6 @@ en: name: placeholder: Type the name of the topic update: Update Topic - users: - index: - filter: Filter - filters: - all: All - with_confirmed_hide: Confirmed - without_confirmed_hide: Pending - title: Hidden users - show: - email: 'Email:' - hidden_at: 'Hidden at:' - registered_at: 'Registered at:' - title: Activity of user (%{user}) verifications: index: phone_not_given: Phone not given diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index bdcfa2e6e..c842403f6 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -181,6 +181,19 @@ es: with_confirmed_hide: Confirmados without_confirmed_hide: Pendientes title: Debates ocultos + hidden_users: + index: + filter: Filtro + filters: + all: Todos + with_confirmed_hide: Confirmados + without_confirmed_hide: Pendientes + title: Usuarios bloqueados + show: + email: 'Email:' + hidden_at: 'Bloqueado:' + registered_at: 'Fecha de alta:' + title: Actividad del usuario (%{user}) legislation: processes: create: @@ -803,19 +816,6 @@ es: name: placeholder: Escribe el nombre del tema update: Actualizar Tema - users: - index: - filter: Filtro - filters: - all: Todos - with_confirmed_hide: Confirmados - without_confirmed_hide: Pendientes - title: Usuarios bloqueados - show: - email: 'Email:' - hidden_at: 'Bloqueado:' - registered_at: 'Fecha de alta:' - title: Actividad del usuario (%{user}) verifications: index: phone_not_given: No ha dado su teléfono diff --git a/config/routes.rb b/config/routes.rb index 355a4da3f..1d895be09 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -161,7 +161,7 @@ Rails.application.routes.draw do end end - resources :users, only: [:index, :show] do + resources :hidden_users, only: [:index, :show] do member do put :restore put :confirm_hide diff --git a/spec/features/admin/activity_spec.rb b/spec/features/admin/activity_spec.rb index 0bc1d7b6b..9a1f8aaf8 100644 --- a/spec/features/admin/activity_spec.rb +++ b/spec/features/admin/activity_spec.rb @@ -314,7 +314,7 @@ feature 'Admin activity' do scenario "Shows admin restores" do user = create(:user, :hidden) - visit admin_users_path + visit admin_hidden_users_path within("#user_#{user.id}") do click_on "Restore" @@ -331,4 +331,4 @@ feature 'Admin activity' do end end -end \ No newline at end of file +end diff --git a/spec/features/admin/users_spec.rb b/spec/features/admin/hidden_users_spec.rb similarity index 82% rename from spec/features/admin/users_spec.rb rename to spec/features/admin/hidden_users_spec.rb index 0bd999ff1..f229bd833 100644 --- a/spec/features/admin/users_spec.rb +++ b/spec/features/admin/hidden_users_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -feature 'Admin users' do +feature 'Admin hidden users' do background do admin = create(:administrator) @@ -15,7 +15,7 @@ feature 'Admin users' do comment1 = create(:comment, :hidden, user: user, commentable: debate2, body: "You have the manners of a beggar") comment2 = create(:comment, user: user, commentable: debate2, body: 'Not Spam') - visit admin_user_path(user) + visit admin_hidden_user_path(user) expect(page).to have_content(debate1.title) expect(page).to have_content(debate2.title) @@ -25,7 +25,7 @@ feature 'Admin users' do scenario 'Restore' do user = create(:user, :hidden) - visit admin_users_path + visit admin_hidden_users_path click_link 'Restore' @@ -36,7 +36,7 @@ feature 'Admin users' do scenario 'Confirm hide' do user = create(:user, :hidden) - visit admin_users_path + visit admin_hidden_users_path click_link 'Confirm' @@ -48,22 +48,22 @@ feature 'Admin users' do end scenario "Current filter is properly highlighted" do - visit admin_users_path + visit admin_hidden_users_path expect(page).to_not have_link('Pending') expect(page).to have_link('All') expect(page).to have_link('Confirmed') - visit admin_users_path(filter: 'Pending') + visit admin_hidden_users_path(filter: 'Pending') expect(page).to_not have_link('Pending') expect(page).to have_link('All') expect(page).to have_link('Confirmed') - visit admin_users_path(filter: 'all') + visit admin_hidden_users_path(filter: 'all') expect(page).to have_link('Pending') expect(page).to_not have_link('All') expect(page).to have_link('Confirmed') - visit admin_users_path(filter: 'with_confirmed_hide') + visit admin_hidden_users_path(filter: 'with_confirmed_hide') expect(page).to have_link('All') expect(page).to have_link('Pending') expect(page).to_not have_link('Confirmed') @@ -73,11 +73,11 @@ feature 'Admin users' do create(:user, :hidden, username: "Unconfirmed") create(:user, :hidden, :with_confirmed_hide, username: "Confirmed user") - visit admin_users_path(filter: 'all') + visit admin_hidden_users_path(filter: 'all') expect(page).to have_content('Unconfirmed') expect(page).to have_content('Confirmed user') - visit admin_users_path(filter: 'with_confirmed_hide') + visit admin_hidden_users_path(filter: 'with_confirmed_hide') expect(page).to_not have_content('Unconfirmed') expect(page).to have_content('Confirmed user') end @@ -86,7 +86,7 @@ feature 'Admin users' do per_page = Kaminari.config.default_per_page (per_page + 2).times { create(:user, :hidden, :with_confirmed_hide) } - visit admin_users_path(filter: 'with_confirmed_hide', page: 2) + visit admin_hidden_users_path(filter: 'with_confirmed_hide', page: 2) click_on('Restore', match: :first, exact: true) From b616210607a443d4e66a50ef3db9eda3a0ff2777 Mon Sep 17 00:00:00 2001 From: Amaia Castro Date: Sat, 27 May 2017 17:11:57 +0200 Subject: [PATCH 2/3] View and search users from admin panel --- app/controllers/admin/users_controller.rb | 16 +++++++++++++ app/helpers/admin_helper.rb | 2 +- app/models/abilities/administrator.rb | 1 + app/views/admin/_menu.html.erb | 4 ++++ app/views/admin/users/_users.html.erb | 22 ++++++++++++++++++ app/views/admin/users/index.html.erb | 16 +++++++++++++ app/views/admin/users/index.js.erb | 1 + config/locales/admin.en.yml | 14 ++++++++++++ config/locales/admin.es.yml | 14 ++++++++++++ config/routes.rb | 2 ++ spec/features/admin/users_spec.rb | 28 +++++++++++++++++++++++ 11 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 app/controllers/admin/users_controller.rb create mode 100644 app/views/admin/users/_users.html.erb create mode 100644 app/views/admin/users/index.html.erb create mode 100644 app/views/admin/users/index.js.erb create mode 100644 spec/features/admin/users_spec.rb diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb new file mode 100644 index 000000000..d1dd1c79c --- /dev/null +++ b/app/controllers/admin/users_controller.rb @@ -0,0 +1,16 @@ +class Admin::UsersController < Admin::BaseController + load_and_authorize_resource + + def index + if params[:search] + s = params[:search] + @users = User.where("username ILIKE ? OR email ILIKE ? OR document_number ILIKE ?", "%#{s}%","%#{s}%","%#{s}%").page(params[:page]) + else + @users = @users.page(params[:page]) + end + respond_to do |format| + format.html + format.js + end + end +end diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index ad5dccc73..b1eab5265 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -29,7 +29,7 @@ module AdminHelper end def menu_profiles? - ["administrators", "organizations", "officials", "moderators", "valuators", "managers"].include? controller_name + ["administrators", "organizations", "officials", "moderators", "valuators", "managers", "users"].include? controller_name end def menu_banners? diff --git a/app/models/abilities/administrator.rb b/app/models/abilities/administrator.rb index af44066be..1aba9dd7c 100644 --- a/app/models/abilities/administrator.rb +++ b/app/models/abilities/administrator.rb @@ -38,6 +38,7 @@ module Abilities can [:search, :create, :index, :destroy], ::Moderator can [:search, :create, :index, :summary], ::Valuator can [:search, :create, :index, :destroy], ::Manager + can [:search, :index], ::User can :manage, Annotation diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index 573e66a16..62638f3b7 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -118,6 +118,10 @@
  • > <%= link_to t('admin.menu.managers'), admin_managers_path %>
  • + +
  • > + <%= link_to t('admin.menu.users'), admin_users_path %> +
  • diff --git a/app/views/admin/users/_users.html.erb b/app/views/admin/users/_users.html.erb new file mode 100644 index 000000000..4d1a6db0e --- /dev/null +++ b/app/views/admin/users/_users.html.erb @@ -0,0 +1,22 @@ +

    <%= page_entries_info @users %>

    + + + + + + + + + + + <% @users.each do |user| %> + + + + + + + <% end %> +
    <%= t('admin.users.fields.name') %><%= t('admin.users.fields.email') %><%= t('admin.users.fields.document_number') %><%= t('admin.users.fields.verification_level') %>
    <%= user.name %><%= user.email %><%= user.document_number %><%= user.user_type %>
    + +<%= paginate @users %> diff --git a/app/views/admin/users/index.html.erb b/app/views/admin/users/index.html.erb new file mode 100644 index 000000000..2713399ed --- /dev/null +++ b/app/views/admin/users/index.html.erb @@ -0,0 +1,16 @@ +

    <%= t("admin.users.index.title") %>

    + +
    + <%= form_tag admin_users_path, method: :get, remote: true do %> +
    + <%= text_field_tag :search, '', placeholder: t('admin.users.search.placeholder') %> +
    +
    + <%= submit_tag t('admin.users.search.search'), class: 'button' %> +
    + <% end %> +
    + +
    + <%= render "users" %> +
    diff --git a/app/views/admin/users/index.js.erb b/app/views/admin/users/index.js.erb new file mode 100644 index 000000000..021407a23 --- /dev/null +++ b/app/views/admin/users/index.js.erb @@ -0,0 +1 @@ +$("#users").html("<%= j render 'users' %>"); diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index fa353ec63..ea55d190d 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -380,6 +380,7 @@ en: title_banners: Banners title_site_customization: Site customization legislation: Collaborative Legislation + users: Users administrators: index: title: Administrators @@ -816,6 +817,19 @@ en: name: placeholder: Type the name of the topic update: Update Topic + users: + fields: + name: Name + email: Email + document_number: Document number + verification_level: Verification level + index: + title: User + user: + verify: Verify + search: + placeholder: Search user by email, name or document number + search: Search verifications: index: phone_not_given: Phone not given diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index c842403f6..ba1e375b9 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -391,6 +391,7 @@ es: title_banners: Banners title_site_customization: Personalizar sitio legislation: Legislación colaborativa + users: Usuarios moderators: index: title: Moderadores @@ -816,6 +817,19 @@ es: name: placeholder: Escribe el nombre del tema update: Actualizar Tema + users: + fields: + name: Nombre + email: Correo electrónico + document_number: DNI/Pasaporte/Tarjeta de residencia + verification_level: Nivel de verficación + index: + title: Usuarios + user: + verify: Verificar + search: + placeholder: Buscar usuario por email, nombre o DNI + search: Buscar verifications: index: phone_not_given: No ha dado su teléfono diff --git a/config/routes.rb b/config/routes.rb index 1d895be09..e0cb9c632 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -238,6 +238,8 @@ Rails.application.routes.draw do get :search, on: :collection end + resources :users, only: [:index, :show] + scope module: :poll do resources :polls do get :search_questions, on: :member diff --git a/spec/features/admin/users_spec.rb b/spec/features/admin/users_spec.rb new file mode 100644 index 000000000..4a62a75d0 --- /dev/null +++ b/spec/features/admin/users_spec.rb @@ -0,0 +1,28 @@ +require 'rails_helper' + +feature 'Admin users' do + background do + @admin = create(:administrator) + @user = create(:user, username: 'Jose Luis Balbin') + login_as(@admin.user) + visit admin_users_path + end + + scenario 'Index' do + expect(page).to have_content @user.name + expect(page).to have_content @user.email + expect(page).to have_content @admin.name + expect(page).to have_content @admin.email + end + + scenario 'Search' do + fill_in :search, with: "Luis" + click_button 'Search' + + expect(page).to have_content @user.name + expect(page).to have_content @user.email + expect(page).to_not have_content @admin.name + expect(page).to_not have_content @admin.email + end +end + From 67942e06190394176acbb83549564f4d923b9c38 Mon Sep 17 00:00:00 2001 From: Amaia Castro Date: Mon, 29 May 2017 20:17:38 +0200 Subject: [PATCH 3/3] Display roles for users --- app/helpers/admin_helper.rb | 16 ++++++++++++++++ app/views/admin/users/_users.html.erb | 10 ++++++---- config/locales/admin.en.yml | 5 ++--- config/locales/admin.es.yml | 5 ++--- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index b1eab5265..9fadfea39 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -52,6 +52,22 @@ module AdminHelper resource.persisted? ? "edit" : "new" end + def user_roles(user) + roles = [] + roles << :admin if user.administrator? + roles << :moderator if user.moderator? + roles << :valuator if user.valuator? + roles << :manager if user.manager? + roles << :poll_officer if user.poll_officer? + roles << :official if user.official? + roles << :organization if user.organization? + roles + end + + def display_user_roles(user) + user_roles(user).join(", ") + end + private def namespace diff --git a/app/views/admin/users/_users.html.erb b/app/views/admin/users/_users.html.erb index 4d1a6db0e..f3c6af0fa 100644 --- a/app/views/admin/users/_users.html.erb +++ b/app/views/admin/users/_users.html.erb @@ -3,10 +3,11 @@ - - - - + + + + + <% @users.each do |user| %> @@ -14,6 +15,7 @@ + <% end %> diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index ea55d190d..3385d3178 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -818,15 +818,14 @@ en: placeholder: Type the name of the topic update: Update Topic users: - fields: + columns: name: Name email: Email document_number: Document number + roles: Roles verification_level: Verification level index: title: User - user: - verify: Verify search: placeholder: Search user by email, name or document number search: Search diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index ba1e375b9..3aefaa20c 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -818,15 +818,14 @@ es: placeholder: Escribe el nombre del tema update: Actualizar Tema users: - fields: + columns: name: Nombre email: Correo electrónico document_number: DNI/Pasaporte/Tarjeta de residencia + roles: Roles verification_level: Nivel de verficación index: title: Usuarios - user: - verify: Verificar search: placeholder: Buscar usuario por email, nombre o DNI search: Buscar
    <%= t('admin.users.fields.name') %><%= t('admin.users.fields.email') %><%= t('admin.users.fields.document_number') %><%= t('admin.users.fields.verification_level') %><%= t('admin.users.columns.name') %><%= t('admin.users.columns.email') %><%= t('admin.users.columns.document_number') %><%= t('admin.users.columns.roles') %><%= t('admin.users.columns.verification_level') %>
    <%= user.name %> <%= user.email %> <%= user.document_number %><%= display_user_roles(user) %> <%= user.user_type %>