Skip to content
Usuario

Users

Cuentas de acceso globales

Usuarios

Para que sirve la vista de Usuarios

/super-admin/users permite consultar cuentas de acceso del sistema desde Super Admin. Sirve para revisar usuarios globales y tenant, rol, negocio asociado, estado activo, bloqueo y ultima actividad agregada.

Esta pantalla no es un modulo de pacientes. Los usuarios listados son cuentas de acceso en login, no pacientes ni expedientes.

RutaFrontend/super-admin/users
ComponenteVista principalUserList.vue
EndpointListadoGET /api/super-admin/users

Vista real de Usuarios

En local puede verse como http://localhost:8081/super-admin/users si el frontend esta corriendo en el puerto 8081. La ruta interna real es /super-admin/users y usa layout Super Admin.

ElementoArchivo realResponsabilidad
Ruta Vuesrc/router/routes/super-admin.jsDeclara path: ‘users’, nombre superAdminUsers, layout super-admin y meta.role = ‘super_admin’.
Vista principalsrc/views/super-admin/users/UserList.vuePinta filtros, tabla, paginacion, empty state y errores controlados.
Servicio frontendsrc/services/core/superAdmin/DASuperAdminService.jsUsa getUsers(params) y getBusinesses(params) para el filtro de negocios.
Constante APIsrc/services/common/apiurl.jsDefine DAC_SUPER_ADMIN_USERS = “/api/super-admin/users”.
Layoutsrc/core/layouts/super-admin.vueMuestra el item Usuarios en navegacion Super Admin.

Proceso al cargar la pantalla

  1. El usuario entra a /super-admin/users.
  2. Router valida ruta protegida con meta.role = ‘super_admin’.
  3. UserList.vue ejecuta mounted().
  4. Carga negocios para el filtro con fetchBusinesses().
  5. Carga cuentas con fetchUsers().
  6. buildParams() arma filtros, paginacion y orden.
  7. DASuperAdminService.getUsers(params) consume GET /api/super-admin/users.
  8. Backend valida token, sesion activa si aplica y rol super_admin.
  9. DAO consulta login, rol, business y actividad de session.
  10. La vista pinta tabla, chips y paginacion.

De donde sale la informacion que llena la tabla

La tabla se llena desde GET /api/super-admin/users. No consume /api/user/list ni endpoints tenant legacy.

GET /api/super-admin/users
?page=1
&pageSize=20
&search=
&businessId=
&role=
&active=
&locked=
&sortBy=created_at
&sortDir=desc

El backend responde { data, pagination }. La vista asigna this.users = payload.data y actualiza pagination.page, pageSize, total y totalPages.

Filtros de Usuarios

Filtro UIParametroQue haceNotas
Buscar cuentasearchBusca por nombre, correo, telefono, id_login, rol o negocio.Usa debounce de 450 ms.
NegociobusinessIdFiltra cuentas asociadas a un negocio.Opciones cargadas desde GET /api/super-admin/businesses.
RolroleFiltra por codigo de rol.Opciones: super_admin, admin, business_admin, doctor, assistant, reception, receptionist.
ActivoactiveFiltra cuentas activas o inactivas.Si queda vacio, muestra todos.
BloqueadolockedFiltra cuentas bloqueadas o no bloqueadas.Usa el campo login.locked.
Por paginapageSizeControla paginacion server-side.Opciones: 10, 20, 50, 100.

Columnas de la tabla de Usuarios

ColumnaCampoQue significaOrdenable
Nombrelogin.nameNombre de la cuenta de acceso.Si
Correologin.emailCorreo administrativo del usuario.Si
Rolrol.codeRol de acceso del sistema.Si
Negociobusiness.nameTenant asociado a la cuenta.Si
Activologin.activeIndica si la cuenta esta activa.Si
Bloqueadologin.lockedIndica bloqueo de cuenta.Si
Ultima actividadMAX(session.updated_at/session.created_at)Ultima actividad de sesion conocida.Si
Creadologin.created_atFecha de creacion de la cuenta.Si
Actualizadologin.updated_atUltima actualizacion administrativa de la cuenta.Si

Acciones disponibles en la vista

Actualmente esta vista es de consulta. No hay menu de acciones por fila. El boton Crear usuario aparece deshabilitado con etiqueta Proximamente.

AccionEstado actualEndpointComentario operativo
ActualizarDisponibleGET /api/super-admin/usersVuelve a ejecutar fetchUsers().
Ordenar columnasDisponibleGET /api/super-admin/users?sortBy=…&sortDir=…Solo permite columnas de whitelist.
Crear usuarioDeshabilitadoNo llama endpoint.No implementado en esta pantalla.
Cerrar sesiones del usuarioNo esta en esta tablaPATCH /api/super-admin/users/:id/close-sessionsLa accion existe en Sesiones activas, no aqui.

Backend: ruta, controller y DAO

CapaArchivo o funcionResponsabilidad
Rutaroutes/mysql/super-admin.jsDeclara GET /users con Token.Auth y requireRole(‘super_admin’).
ControllerSuperAdminController.usersRecibe query params y delega en SuperAdminDao.users.
DAOSuperAdminDao.usersNormaliza paginacion, filtros, orden y ejecuta consultas agregadas.
FiltrosbuildUserFilters(query)Construye condiciones SQL para search, businessId, role, active, locked, from y to.

SQL simplificado del listado de usuarios

El listado consulta cuentas de acceso y su relacion administrativa. No consulta pacientes, expedientes, recetas, citas clinicas, tratamientos ni odontograma.

SELECT
  l.id_login,
  l.name,
  l.email,
  r.code AS role,
  b.id_business,
  b.name AS business_name,
  l.active,
  l.locked,
  l.created_at,
  l.updated_at,
  MAX(COALESCE(s.updated_at, s.created_at)) AS last_activity_at
FROM login l
LEFT JOIN rol r ON r.id_rol = l.id_rol
LEFT JOIN business b ON b.id_business = l.id_business
LEFT JOIN `session` s ON s.id_login = l.id_login
WHERE ...filtros seguros...
GROUP BY
  l.id_login,
  l.name,
  l.email,
  r.code,
  b.id_business,
  b.name,
  l.active,
  l.locked,
  l.created_at,
  l.updated_at
ORDER BY ...columna permitida...
LIMIT :limit OFFSET :offset;

Privacidad y seguridad en Usuarios

  • No devuelve password.
  • No devuelve hashes.
  • No devuelve access tokens ni refresh tokens.
  • No muestra pacientes ni datos clinicos.
  • No usa /api/user/list.
  • No permite crear usuarios desde esta vista actualmente.
  • No permite acciones sin rol super_admin.

Errores comunes

ErrorCausa probableAccion recomendada
401Sesion expirada, token ausente o sesion cerrada.Volver a iniciar sesion.
403Usuario no tiene rol super_admin.Revisar rol y acceso a ruta protegida.
Tabla vaciaFiltros demasiado estrictos o no hay cuentas en ese rango.Limpiar filtros y revisar paginacion.
Filtro de negocio no cargaFallo en GET /api/super-admin/businesses.Revisar permisos, backend y Network.