1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/casbin-think-casbin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Think-Casbin

Build Status Coverage Status Latest Stable Version Total Downloads License

PHP-Casbin — это мощный и эффективный открытый фреймворк для контроля доступа, который поддерживает управление правами на основе различных моделей контроля доступа.

Think-Casbin представляет собой расширение Casbin, специально разработанное для ThinkPHP 5.1. Оно позволяет разработчикам более удобно использовать Casbin в проектах на ThinkPHP.

Для ThinkPHP 6.0 теперь доступно более мощное расширение ThinkPHP 6.0 Authorization.

Необходимые знания

  • Уверенное использование Composer для управления пакетами.
  • Понимание основных функций фреймворка ThinkPHP, таких как фасад (Facade), модели и инструменты миграции базы данных.
  • Знание PHP командной строки и командной строки ThinkPHP.
  • Знакомство с принципами работы и использованием Casbin.

Установка

  1. Создайте проект ThinkPHP (если его ещё нет):
composer create-project topthink/think=5.1.* tp5
  1. В проекте ThinkPHP установите расширение Think-Casbin:
composer require casbin/think-adapter
  1. Опубликуйте ресурсы:
php think casbin:publish

Это автоматически создаст файл конфигурации модели config/casbin-basic-model.conf и файл конфигурации Casbin config/casbin.php.

  1. Выполните миграцию данных:

Поскольку Think-Casbin по умолчанию сохраняет политику Casbin в базе данных, необходимо инициализировать информацию о таблицах базы данных. Перед выполнением убедитесь, что информация о подключении к базе данных настроена правильно. Если требуется изменить информацию о соединении с базой данных или имена таблиц Casbin, можно внести изменения в файл config/casbin.php.

php think casbin:migrate

Эта команда автоматически создаст таблицу правил Casbin casbin_rule.

Использование

Назначение прав пользователям

use Casbin;

// Предоставить пользователю alice право на чтение data1
Casbin::addPolicy('alice', 'data1', 'read');

Проверка наличия политики

Casbin::hasPolicy('alice', 'data1', 'read'); // true

Удаление прав

Casbin::removePolicy('alice', 'data1', 'read');

Использование решателя для проверки прав


use Casbin;

$sub = 'alice'; // пользователь, пытающийся получить доступ к ресурсу.
$obj = 'data1'; // ресурс, к которому будет осуществлён доступ.
$act = 'read'; // операция, которую пользователь выполняет над ресурсом.

if (true === Casbin::enforce($sub, $obj, $act)) {
    // разрешить alice читать data1
    echo 'разрешить alice читать data1';
} else {
    // отклонить запрос, показать ошибку
}

Настройка

config/casbin-basic-model.conf — файл модели Casbin

config/casbin.php — информация об адаптере и конфигурации базы данных Casbin

Дополнительные API

— Management API — RBAC API

О Think-Casbin

  • Реализует адаптер для хранения на основе Think-ORM (сохраняет политику в базе данных).
  • Реализует фасад Casbin (think\Facade) для вызова, используя \Casbin::, можно статически вызывать все методы Enforcer в PHP-Casbin.
  • Позволяет настраивать модель и адаптер Casbin через файлы конфигурации.

Для получения дополнительной информации посетите веб-сайт Casbin (https://casbin.org).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Расширение для Casbin, настроенное специально для ThinkPHP 5.1 — это пакет расширений для Casbin, мощной и эффективной открытой библиотеки контроля доступа. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/casbin-think-casbin.git
git@api.gitlife.ru:oschina-mirror/casbin-think-casbin.git
oschina-mirror
casbin-think-casbin
casbin-think-casbin
master