Простая админка Laravel
2024-06-24
Эту админку я написал для небольшого сайта на фреймворке Laravel.
Изначально было нужно простое редактирование записей в таблице. Но я решил расширить возможности и сделать ее универсальной чтобы можно было установить ее на любой Laravel-сайт.
Что внутри?
Админка умеет:
- изменять/добавлять/удалять записи из любой таблицы в базе данных;
- изменять/удалять файлы в любой папке проекта, кроме vendor и служебных;
- загружать/скачивать любые файлы в любой папке проекта, кроме vendor и служебных;
Пока что больше ничего не реализовано, хотя еще есть что добавить.
Админка состоит из нескольких view, миграции, одного контроллера, миддлваря, файла роутов и стилей.
В файле миграции, в стандартную таблицу users, добавляется столбец Admin, который позволит миддлвару IsAdmin определить, является ли пользователь, вошедший на сайт, администратором или нет, а если нет, то выкинуть его.
Для контроля доступа к админ-панели необходимо настроить аутентификацию пользователей, если такого функционала нет.
Установка
В случае если на сайте Laravel нет системы аутентификации пользователя, то сперва сделайте ее по этой инструкции. И зарегистрируйте первого пользователя, у которого будет доступ в админку.
Для установки админки нужно сначала скопировать файлы из архива в корневую папку с сайтом laravel.
Для того чтобы все заработало нужно сделать несколько шагов:
- Выполнить миграцию
- Подключить новые роуты admin.php
- Настроить файл config/filesystems
Теперь более подробно:
Делаем миграцию:
В результате миграции у таблицы users появится новое поле Admin, которое определяет право на доступ к админ-панели. И у первого пользователя с id = 1 появится право на вход в админку.
Дальше нужно подключить новые маршурты admin.php.
Делается это в файле app/Providers/RouteServiceProvider.php добавлением одной строчки.
->group(base_path('routes/web.php')) - Стандартный маршрут
->group(base_path('routes/auth.php')) - Если делали авторизацию
->group(base_path('routes/admin.php')); - Добавляем новый маршрут
Админкой можно пользоваться, но пока что получится работать только с таблицами, доступа к файлам не будет, точнее он будет только к папке storage.
Чтобы настроить доступ к файлам и папкам достаточно перенастроить файл config/filesystms.php, и задать такие настройки для диска local.
'local' => [ 'driver' => 'local', 'root' => base_path(''), 'throw' => false, ],
На этом пока все. После выполнения всех инструкций админка-laravel становится полностью работоспособной.
Надеюсь кому-то пригодится моя laravel-админка.