Este es un modelo estándar para la construcción obstinada del panel de administración de Laravel 8.0 con el tema AdminLTE 3.0, Alpinejs 2.0, Livewire 2.0, compatible con pruebas y ramas de funciones opcionales.
Puedes consultar este repositorio. Estoy trabajando activamente en Laravel Castra. Misma idea, diferentes herramientas (Hotwire Turbo).
A veces los paquetes son demasiado grandes o engorrosos para usarlos. Otras veces, el paquete no tiene la característica crítica que estás buscando y estás haciendo algunos trucos para evitarla.
Lo que te falta es tener control sobre el código, ¡y ahora lo tienes! No me gusta cómo se agrega un nuevo usuario. Ningún problema. Puedes modificar el código como quieras. No más bifurcar paquetes y alterar su código. La idea es crear ramas de funciones estándar y ponerlas a disposición de otros para fusionarlas en su rama maestra.
Aquí está la lista de ramas de funciones admitidas. Al fusionarlos en master, desbloqueas nuevas funciones.
Después de instalar Laravel debes ejecutar esos comandos:
git clone https://github.com/jcergolj/laravellte.git
composer install
cp .env.example .env
php artisan key:generate
npm install
npm run dev
composer cghooks update
php artisan migrate:fresh --seed
Seamos realistas. A veces somos descuidados y no cuidamos lo mejor posible el código. Agregué algunos paquetes útiles (¿no es irónico?) para aliviar al desarrollador la mayor carga posible.
"php artisan insights --no-interaction --min-quality=90 --min-complexity=85 --min-architecture=90 --min-style=95"
Para acciones CRUD, podría considerar utilizar el comando de scaffolding de archivos integrado. Genera archivos para acciones de Index, Crear, Mostrar, Editar y Eliminar como esta:
php artisan make:ltd-component bla --index --create --show --edit --delete
Puede omitir cualquiera de las opciones. Si lo desea, puede actualizar los archivos stubs
como desee. Hay comentarios en archivos estructurados que actúan como recordatorio para que modifique el código. Puede encontrarlo escribiendo: index-review
, create-review
, show-review
, edit-review
, delete-review
. Los andamios de fábrica y modelo no están incluidos en este comando.
Laravellte utiliza un sistema de autorización basado en permisos y roles. Solo los usuarios con función de administrador pueden agregar nuevas funciones y asignarles permisos.
Para los nuevos recursos, los permisos se agregan a través de PermissionsTableSeeder. Por convención, los principales tipos de permisos son indexar , crear , editar , mostrar y eliminar con recurso en prefijo plural. Ejemplo: usuarios.index . Dicho esto, eres libre de agregar el tuyo propio. Sin embargo, tendrás que revisar/modificar el código.
Según la convención, los nombres de las rutas deben ser de esos tipos: indexar , crear , editar , mostrar y eliminar . Ver ejemplo.
Para los componentes Livewire, la convención para nombrarlos es la siguiente: debe usar uno de esos tipos seguido del nombre del recurso y luego del Componente. por ejemplo, IndexUserComponent Todos los componentes de Livewire deben utilizar el rasgo HasLivewireAuth. Aquí está la implementación.
Al agregar permiso al rol, hay un archivo adicional llamado propietario_restringido . Si el campo restringido por propietario es verdadero , cualquier usuario de la página de índice con ese permiso solo podrá ver sus propios recursos. Sin embargo, para que esto funcione, el recurso debe tener el propietario_id archivado y VisibleTo global adjunto en el método de arranque.
Si el campo restringido por propietario es verdadero para los tipos mostrar , editar y eliminar , el usuario solo puede modificar los recursos que le pertenecen.
Para los tipos de creación, se ignora la restricción del propietario .
En el centro está ForRouteGate que maneja la autorización. La mención de honor es para Authorization Middleware.
Para la función de administrador, no se aplican restricciones de permisos.
Licenciado bajo la licencia MIT
Janez Cergolj | Horacio Degiorgi | Chris Thompson | Maduka Jayalath |