Простая админка Laravel

2024-06-24

Эту админку я написал для небольшого сайта на фреймворке Laravel.
Изначально было нужно простое редактирование записей в таблице. Но я решил расширить возможности и сделать ее универсальной чтобы можно было установить ее на любой Laravel-сайт.

Что внутри?

Админка умеет:

  • изменять/добавлять/удалять записи из любой таблицы в базе данных;
  • изменять/удалять файлы в любой папке проекта, кроме vendor и служебных;
  • загружать/скачивать любые файлы в любой папке проекта, кроме vendor и служебных;
Нет никаких защит от дурака - если что-то удалил, то вернуть обратно уже нельзя.
Пока что больше ничего не реализовано, хотя еще есть что добавить.

Админка состоит из нескольких view, миграции, одного контроллера, миддлваря, файла роутов и стилей.

В файле миграции, в стандартную таблицу users, добавляется столбец Admin, который позволит миддлвару IsAdmin определить, является ли пользователь, вошедший на сайт, администратором или нет, а если нет, то выкинуть его.

Для контроля доступа к админ-панели необходимо настроить аутентификацию пользователей, если такого функционала нет.

Установка

В случае если на сайте Laravel нет системы аутентификации пользователя, то сперва сделайте ее по этой инструкции. И зарегистрируйте первого пользователя, у которого будет доступ в админку.
Для установки админки нужно сначала скопировать файлы из архива в корневую папку с сайтом laravel.

Для того чтобы все заработало нужно сделать несколько шагов:

  1. Выполнить миграцию
  2. Подключить новые роуты admin.php
  3. Настроить файл config/filesystems

Теперь более подробно:
Делаем миграцию:

php artisan migrate

В результате миграции у таблицы users появится новое поле Admin, которое определяет право на доступ к админ-панели. И у первого пользователя с id = 1 появится право на вход в админку.

Дальше нужно подключить новые маршурты admin.php.
Делается это в файле app/Providers/RouteServiceProvider.php добавлением одной строчки.

Route::middleware('web') - Находим этот миддлвар
->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-админка.

Скачать