Download the PHP package illusiard/yii2-entity-acl without Composer

On this page you can find all versions of the php package illusiard/yii2-entity-acl. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package yii2-entity-acl

yii2-entity-acl

ACL-система для Yii2 с unix-подобной моделью прав и расширяемыми условиями доступа.

Пакет предназначен для использования совместно с yii2-base-entity-system, но не имеет жёсткой зависимости от него и может применяться самостоятельно.

Основная цель — дать прозрачную, расширяемую и предсказуемую модель контроля доступа, подходящую для сложных бизнес-сценариев (CRM, SaaS, back-office системы).


Основные принципы

  1. Unix-like модель прав

    • owner / group / other
    • битовые флаги операций
    • отдельные правила для сущности и для конкретной записи
  2. Allow / Deny conditions

    • условия могут как запрещать, так и разрешать доступ
    • deny всегда имеет приоритет
    • allow может разрешить доступ даже если базовые права запрещают
  3. Расширяемость

    • subject (кто) — через SubjectResolverInterface
    • when (условия) — через handler’ы условий
    • storage — через AclStorageInterface
  4. Детерминированный порядок принятия решений
    • без неявной магии
    • поведение зафиксировано тестами

Операции и флаги

Используются следующие битовые флаги операций:

Операция Флаг
list 1
read 2
create 4
update 8
delete 16
restore 32
permanentDelete 64

Флаги комбинируются через побитовое OR.


Таблицы

bes_acl_record

Хранит базовые права доступа.

Используется одна таблица:

Основные поля:


bes_acl_condition

Хранит дополнительные условия доступа.

Основные поля:


Порядок принятия решения

Для запроса доступа выполняются шаги:

  1. Определение операции

    • операция переводится в битовую маску
  2. Базовое правило (bes_acl_record)

    • сначала ищется правило для конкретной записи
    • если нет — правило для сущности
    • определяется сегмент: owner / group / other
    • проверяются флаги
  3. Conditions (bes_acl_condition)

    • выбираются все условия для операции
    • применяются record-level и entity-level условия
    • проверяются subject и when
    • если сработал deny → доступ запрещён
    • если сработал allow → доступ разрешён
  4. Итог
    • allow condition
    • иначе base allow
    • иначе deny (по умолчанию)

Deny всегда имеет приоритет над allow и base-правами.


Subject (кто)

Subject описывает, к кому применяется условие.

Пример subject_json:

Поддерживаемые ключи (по умолчанию):

Разрешение этих значений выполняется через SubjectResolverInterface.

SubjectResolverInterface

Дефолтная реализация (ContextSubjectResolver) читает значения из AccessRequest->context.


When (когда)

When описывает условия времени/контекста, при которых правило применяется.

Пример when_json:

Поддержка условий реализована через handler’ы:

Ссылки на другие условия

Допускается ссылка на другие conditions:

Все указанные условия должны выполниться (логика AND).


Кеширование

DbAclStorage использует in-memory кеш на время запроса:

Это позволяет вызывать can() много раз без повторных запросов к БД.


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


Тесты

Логика ACL полностью покрыта unit-тестами:

Тесты являются частью спецификации поведения.


Статус

Пакет предоставляет стабильное ядро ACL. UI, редакторы правил и визуализация намеренно не входят в состав и должны реализовываться на уровне клиентского кода или других пакетов.


Лицензия

BSD 3-Clause


All versions of yii2-entity-acl with dependencies

PHP Build Version
Package Version
Requires php Version >=8.5
yiisoft/yii2 Version ^2.0.55
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package illusiard/yii2-entity-acl contains the following files

Loading the files please wait ...