Самая упрощенная система управления разрешениями, разработанная на базе Laravel5.5. Пожалуйста, переключитесь на ветку any54
для версии Laravel5.4.
Any
— это наиболее упрощенный новый серверный модуль управления, включая простейший контроль разрешений. Когда я впервые писал систему разрешений, я читал исходный код, написанный иностранцем. На основе его кода я написал бэкенд на базе Laravel5.2 IAdmin
. Это оригинальная система разрешений. Для публичного использования все разрешения прописываются в файле конфигурации.
iDashboard
оптимизирует идеи дизайна и структуру кода на основе IAdmin
и привязывает разрешения к именам маршрутизации. Промежуточное программное обеспечение может определять разрешения всех контроллеров. Разработанный на основе Laravel 5.3, единственная оптимизация заключается в привязке разрешений и псевдонимов маршрутизации, чтобы код можно было использовать сразу после его написания. Однако проблема слишком большого количества файлов конфигурации не решена.
Any
проект реконструирован на основе опыта iDashboard
. Контроль разрешений в предыдущих версиях необходимо определить самостоятельно. Есть ли способ автоматически генерировать и оценивать разрешения, такие как ACL? Это значительно снижает необходимость определения разрешений и конфигураций. Any
родился.
Основной принцип Any
заключается в получении текущего контроллера (контроллера) и метода (метода) на основе маршрута, посещенного пользователем. Контроллер добавляет метод для генерации уникального значения разрешения. Промежуточное программное обеспечение будет определять, когда пользователь обращается к файлу. определенный метод. Если вы являетесь суперадминистратором, даже если у вас нет этого разрешения, оно будет автоматически предоставлено роли суперадминистратора. Чтобы избежать слишком большого количества запросов к промежуточному программному обеспечению, копия всех разрешений текущего пользователя будет кэшироваться после успешного входа пользователя в систему. При оценке разрешений они напрямую получаются из кэша. Любое обновление разрешений любой роли. обновит кеш. Кроме того, в код было внесено множество оптимизаций.
Это только начало основных функций, надеюсь получить больше вдохновения
Загрузите код этого проекта локально:
git clone https://github.com/lanceWan/any.git
Войдите в проект и установите composer
:
cd any
composer install
Конфигурационный файл .env
:
[sudo]cp .env.example .env
Обратите внимание на права выполнения в Linux и Mac!
Настройте базу данных:
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Перенести данные:
php artisan migrate --seed
Хорошо, проект настроен. Просто посетите домашнюю страницу и войдите в систему. Если вы не знаете маршрут, вы можете перейти непосредственно к файлу routes/web.php
. Учетная запись администратора по умолчанию: iwanli
, пароль: 123456
. Если вы настраиваете его под Linux
или Mac
, обратите внимание на разрешения соответствующих каталогов. Я не буду здесь вдаваться в подробности, наслаждайтесь!
Развитие Any
неотделимо от отзывов и предложений каждого. Если у вас есть какие-либо идеи, вы можете отправить их напрямую по адресу https://github.com/lanceWan/any/issues. Спасибо.
Группа по обмену обучением Laravel: 312621686