Agregar Rol

{!! Form::open(array('route' => 'Roles.store','method'=>'POST')) !!}
{!! Form::text('name', null, array('class' => 'form-control', 'placeholder' => 'Ej: Administrador, Supervisor, etc.')) !!}
@php // Agrupar permisos por módulos del sidebar con estructura jerárquica $modulosPermisos = [ 'Extranet' => [ 'parent' => 'sidebar_extranet', 'children' => [ 'Dashboard' => ['ver-dashboard-extranet'], 'Comunicados' => ['ver-comunicados', 'crear-comunicado', 'editar-comunicado', 'eliminar-comunicado', 'fijar-comunicado', 'archivar-comunicado'], 'Proyectos' => ['ver-proyectos', 'crear-proyecto', 'editar-proyecto', 'eliminar-proyecto', 'gestionar-tareas', 'asignar-tareas'], 'Eventos' => ['ver-eventos', 'crear-evento', 'editar-evento', 'eliminar-evento', 'gestionar-asistentes'], 'Reconocimientos' => ['ver-reconocimientos', 'crear-reconocimiento', 'editar-reconocimiento', 'eliminar-reconocimiento'], 'Encuestas' => ['ver-encuestas', 'crear-encuesta', 'editar-encuesta', 'eliminar-encuesta', 'ver-resultados-encuesta', 'responder-encuesta'], 'Documentos' => ['ver-documentos', 'subir-documento', 'editar-documento', 'eliminar-documento', 'gestionar-versiones'], 'Galería' => ['ver-galeria', 'crear-album', 'editar-album', 'eliminar-album', 'subir-fotos', 'eliminar-fotos'], 'Muro Social' => ['ver-muro', 'publicar-muro', 'comentar', 'reaccionar', 'eliminar-comentarios'], 'Directorio' => ['ver-directorio'], 'Notificaciones' => ['gestionar-notificaciones'], ] ], 'Administración' => [ 'parent' => 'sidebar_administrador', 'children' => [ 'Roles' => ['ver-roles'], 'Usuarios' => ['ver-usuarios', 'crear-usuario', 'opciones-usuario'], 'Firma de Certificados' => ['ver-firma-de-certificados'], ] ], 'Recursos Humanos' => [ 'parent' => 'sidebar_recursos_humanos', 'children' => [ 'Cargos' => ['ver-cargo', 'crear-cargo', 'opciones-cargo'], 'Empleados' => ['ver-empleado', 'crear-empleado', 'importar-empleado', 'opciones-empleado'], 'Novedades' => ['ver-novedades', 'ver-tipos_novedades'], ] ], 'Contabilidad' => [ 'parent' => 'sidebar_contabilidad', 'children' => [ 'Unidades de Negocio' => ['ver-uni_negocio', 'crear-uni_negocio', 'opciones-uni_negocio'], 'Clientes' => ['ver-cli', 'crear-cli', 'opciones-cli'], 'Relación Uni-Cli' => ['ver-uni_cli', 'crear-uni_cli', 'opciones-uni_cli'], ] ], 'Operaciones' => [ 'parent' => 'sidebar_operaciones', 'children' => [ 'Jornadas' => ['ver-jornada', 'crear-jornada', 'opciones-jornada'], 'Campañas' => ['ver-camp', 'crear-camp', 'opciones-camp'], ] ], 'Mi Horario' => [ 'parent' => 'sidebar_agente', 'children' => [] ], 'Horarios (Supervisor)' => [ 'parent' => 'sidebar_supervisor', 'children' => [] ], 'Mi Inventario' => [ 'parent' => 'sidebar_mi_inventario', 'children' => [] ], 'Mi Visita' => [ 'parent' => 'sidebar_mi_visita', 'children' => [] ], 'Mis Reportes' => [ 'parent' => 'sidebar_mi_reportes', 'children' => [] ], 'Análisis y Reportes' => [ 'parent' => 'sidebar_reportes', 'children' => [ 'Reportes Operacionales' => ['report_operaciones'], 'Reportes Financieros' => ['report_finanzas'], ] ], ]; $permisosNoAgrupados = []; $todosLosPermisosAgrupados = []; foreach ($modulosPermisos as $modulo => $config) { $todosLosPermisosAgrupados[] = $config['parent']; foreach ($config['children'] as $submodulo => $permisos) { $todosLosPermisosAgrupados = array_merge($todosLosPermisosAgrupados, $permisos); } } foreach ($Permissions as $permission) { if (!in_array($permission->name, $todosLosPermisosAgrupados)) { $permisosNoAgrupados[] = $permission; } } @endphp @foreach ($modulosPermisos as $modulo => $config) @php $parentPermission = $Permissions->firstWhere('name', $config['parent']); $hasChildren = count($config['children']) > 0; @endphp @if($parentPermission)
{{-- Permiso padre --}}
{!! Form::checkbox('permissions[]', $parentPermission->id, false, array('class' => 'custom-control-input', 'id' => 'permission-create-parent-'.$parentPermission->id)) !!}
{{-- Permisos hijos --}} @if($hasChildren) @foreach ($config['children'] as $submodulo => $permisosHijos)
{{ $submodulo }} @foreach ($permisosHijos as $permisoNombre) @php $childPermission = $Permissions->firstWhere('name', $permisoNombre); @endphp @if($childPermission)
{!! Form::checkbox('permissions[]', $childPermission->id, false, array('class' => 'custom-control-input', 'id' => 'permission-create-'.$childPermission->id)) !!}
@endif @endforeach
@endforeach @endif
@endif @endforeach @if(count($permisosNoAgrupados) > 0)
@foreach ($permisosNoAgrupados as $permission)
{!! Form::checkbox('permissions[]', $permission->id, false, array('class' => 'custom-control-input', 'id' => 'permission-create-'.$permission->id)) !!}
@endforeach
@endif
{!! Form::close() !!}