@extends('layouts.app') @section('title', 'Usuarios | Veltrix v2') @section('page_title', 'Usuarios') @section('page_subtitle', 'Gestion operativa en tiempo real') @section('page_icon', 'bx bxs-group') @section('content') @php $usersRows = $usuarios instanceof \Illuminate\Support\Collection ? $usuarios : collect($usuarios ?? []); $rolesRows = $roles instanceof \Illuminate\Support\Collection ? $roles : collect($roles ?? []); $sucursalesRows = $sucursales instanceof \Illuminate\Support\Collection ? $sucursales : collect($sucursales ?? []); $permissionsRows = $permissionsCatalog instanceof \Illuminate\Support\Collection ? $permissionsCatalog : collect($permissionsCatalog ?? []); $rolePermissionMapValue = is_array($rolePermissionMap ?? null) ? $rolePermissionMap : []; $permissionsByModule = $permissionsRows ->groupBy(static function ($permission): string { $module = trim((string) ($permission->modulo ?? 'general')); return $module !== '' ? $module : 'general'; }) ->sortKeys(); $totalUsers = $usersRows->count(); $activeUsers = $usersRows->where('activo', true)->count(); $inactiveUsers = max(0, $totalUsers - $activeUsers); $assignedBranchUsers = $usersRows->filter(static fn ($user): bool => (int) ($user->sucursal_id ?? 0) > 0)->count(); $oldRoleId = (int) old('rol_id', 0); $oldSucursalId = (int) old('sucursal_id', 0); @endphp @if ($errors->any())
{{ $errors->first() }}
@endif
Usuarios

{{ $totalUsers }}

Activos

{{ $activeUsers }}

Inactivos

{{ $inactiveUsers }}

Con sucursal

{{ $assignedBranchUsers }}

Nuevo usuario

Acceso y rol en un solo paso
@if (has_permission('usuarios.crear'))
@csrf
Minimo 8 caracteres.
@else

No tienes permiso para crear usuarios.

@endif

Usuarios

Mostrando {{ $totalUsers }} de {{ $totalUsers }}
@if ($usersRows->isEmpty()) @endif @foreach ($usersRows as $item) @php $userName = trim((string) ($item->nombre ?? '')); $userEmail = trim((string) ($item->email ?? '')); $userRole = trim((string) ($item->rol->nombre ?? 'Sin rol')); $userRoleId = (int) ($item->rol_id ?? 0); $userBranchName = trim((string) (($item->sucursal->nombre ?? '') !== '' ? $item->sucursal->nombre : 'Sin asignar')); $userBranchId = (int) ($item->sucursal_id ?? 0); $isActive = (bool) ($item->activo ?? false); $userStatus = $isActive ? 'activo' : 'inactivo'; $searchIndex = strtolower(trim($userName.' '.$userEmail.' '.$userRole.' '.$userBranchName)); @endphp @endforeach
Usuario Rol Sucursal Estado
No hay usuarios registrados.
{{ $userName }} {{ $userEmail }}
{{ $userRole }} {{ $userBranchName }} {{ $isActive ? 'Activo' : 'Inactivo' }}

Permisos por rol

Interfaz simplificada para asignar permisos rapidamente
{{ $permissionsRows->count() }} permisos en catalogo
@if (! has_permission('roles.gestionar'))

No tienes permiso para editar roles.

@elseif ($rolesRows->isEmpty())

No hay roles activos para configurar.

@else
@foreach ($rolesRows as $role) @php $roleId = (int) ($role->id ?? 0); $selectedPermissionIds = collect($rolePermissionMapValue[$roleId] ?? [])->map(static fn ($id): int => (int) $id)->all(); @endphp @endforeach
@foreach ($rolesRows as $role) @php $roleId = (int) ($role->id ?? 0); $selectedPermissionIds = collect($rolePermissionMapValue[$roleId] ?? [])->map(static fn ($id): int => (int) $id)->all(); $accordionId = 'vxRolePermAccordion'.$roleId; @endphp
@csrf
{{ count($selectedPermissionIds) }} seleccionados
@foreach ($permissionsByModule as $module => $permissions) @php $moduleKeyRaw = strtolower(trim((string) $module)); $moduleKeySafe = preg_replace('/[^a-z0-9_-]/', '-', $moduleKeyRaw) ?: 'modulo'; $moduleLabel = ucwords(str_replace('_', ' ', $moduleKeyRaw)); $moduleSelected = 0; foreach ($permissions as $permission) { $permissionId = (int) ($permission->id ?? 0); if (in_array($permissionId, $selectedPermissionIds, true)) { $moduleSelected++; } } $collapseId = 'vxRole'.$roleId.'Module'.$moduleKeySafe; $headingId = 'vxRole'.$roleId.'Heading'.$moduleKeySafe; @endphp

{{ $permissions->count() }} permisos en este modulo
@foreach ($permissions as $permission) @php $permissionId = (int) ($permission->id ?? 0); $permissionName = trim((string) (($permission->nombre ?? '') !== '' ? $permission->nombre : ($permission->codigo ?? 'Permiso'))); $permissionCode = trim((string) ($permission->codigo ?? '')); $permissionSearch = strtolower(trim($permissionName.' '.$permissionCode)); $permissionInputId = 'perm_'.$roleId.'_'.$permissionId; @endphp @endforeach
@endforeach
@endforeach
@endif
@endsection @push('scripts') @endpush