⚡️ #yiisoftRbacSpiralDb #yiisoftRbacCycleDb
Переименовали пакет Yii RBAC Spiral Database.
Yii RBAC Spiral Database (
↓
Yii RBAC Cycle Database (
Переименовали пакет Yii RBAC Spiral Database.
Yii RBAC Spiral Database (
yiisoft/rbac-spiral-db
)↓
Yii RBAC Cycle Database (
yiisoft/rbac-cycle-db
)✨ #yiisoftRbacCycleDb
Создали новый пакет Yii RBAC Cycle Database Storage для реализации на базе Cycle DBAL хранилища ролей, разрешений и назначений их пользователям для Yii RBAC.
Создали новый пакет Yii RBAC Cycle Database Storage для реализации на базе Cycle DBAL хранилища ролей, разрешений и назначений их пользователям для Yii RBAC.
👍1
⚡️ #yiisoftRbacCycleDb
Сделали первую реализацию хранилища ролей, разрешений и назначений их пользователям для Yii RBAC на базе Cycle DBAL в пакете Yii RBAC Cycle Database Storage (PR).
Сделали первую реализацию хранилища ролей, разрешений и назначений их пользователям для Yii RBAC на базе Cycle DBAL в пакете Yii RBAC Cycle Database Storage (PR).
👍4
⚡️ #yiisoftRbacCycleDb
Выполнили небольшой рефакторинг и улучшили запросы к БД в пакете Yii RBAC Cycle Database Storage (PR).
Выполнили небольшой рефакторинг и улучшили запросы к БД в пакете Yii RBAC Cycle Database Storage (PR).
👍1
⚡️ #yiisoftRbacCycleDb
Несколько изменений в пакете Yii RBAC Cycle Database Storage.
• Актуализировали конфигурацию scrutinizer, а в GitHub Actions перешли на использование Yii GitHub Actions (PR).
• Адаптировали пакет к последней версии Yii RBAC (PR).
Несколько изменений в пакете Yii RBAC Cycle Database Storage.
• Актуализировали конфигурацию scrutinizer, а в GitHub Actions перешли на использование Yii GitHub Actions (PR).
• Адаптировали пакет к последней версии Yii RBAC (PR).
🔥3
⚡️ #yiisoftRbacCycleDb
В Yii RBAC Cycle Database Storage добавили тестов и исправили несколько ошибок:
- метод
- метод
- при получении элементов RBAC при отсутствии правила вместо null устанавливалась пустая строка в качестве имени правила (PR).
В Yii RBAC Cycle Database Storage добавили тестов и исправили несколько ошибок:
- метод
AssignmentsStorage::getByUserId()
возвращал некорректный результат (PR);- метод
ItemsStorage::getParents()
возвращал некорректный результат (PR);- при получении элементов RBAC при отсутствии правила вместо null устанавливалась пустая строка в качестве имени правила (PR).
⚡️ #yiisoftRbacCycleDb
Несколько улучшений в Yii RBAC Cycle Database Storage.
• В CI пакета добавили проверку транзитивных зависимостей (PR).
• В CI пакета добавили Rector и применили предлагаемые изменения (PR, PR).
• Обновили dev-зависимости (PR):
-
-
-
Несколько улучшений в Yii RBAC Cycle Database Storage.
• В CI пакета добавили проверку транзитивных зависимостей (PR).
• В CI пакета добавили Rector и применили предлагаемые изменения (PR, PR).
• Обновили dev-зависимости (PR):
-
vimeo/psalm
до ^4.30|^5.2
;-
roave/infection-static-analysis-plugin
до ^1.25
,-
maglnet/composer-require-checker
до ^4.3
.👍3
#yiisoftRbacCycleDb #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii RBAC Cycle Database Storage 1.0
Первая стабильная версия хранилища связки ролей с пользователями и иерархии ролей/разрешений для Yii RBAC на основе базы данных с использованием абстракции Cycle DBAL.
Пакет предоставляет:
• реализации интерфейсов хранилища Yii RBAC;
• консольную команду
🎁 Yii RBAC Cycle Database Storage 1.0
Первая стабильная версия хранилища связки ролей с пользователями и иерархии ролей/разрешений для Yii RBAC на основе базы данных с использованием абстракции Cycle DBAL.
Пакет предоставляет:
• реализации интерфейсов хранилища Yii RBAC;
• консольную команду
rbac/cycle/init
для создания необходимых таблиц в БД.🔥15👍4🏆2
#yiisoftRbacCycleDb #МажорныйРелиз #Релиз
🎁 Yii RBAC Cycle Database 2.0.0
• Добавлена поддержка уровня вложенности больше 1 для ролей и прав.
• Исправлен неработающий флаг
• Исправлена поддержка всех доступных в Cycle реляционных баз данных.
• Тип timestamp заменен на integer.
😎 Релиз подготовил Алексей Рогачев. Отдельная благодарность пользователю sobhan-m94 за обнаружение некоторых проблем и попытки их исправить.
🎁 Yii RBAC Cycle Database 2.0.0
• Добавлена поддержка уровня вложенности больше 1 для ролей и прав.
• Исправлен неработающий флаг
--force
для консольной команды RbacCycleInit
.• Исправлена поддержка всех доступных в Cycle реляционных баз данных.
• Тип timestamp заменен на integer.
😎 Релиз подготовил Алексей Рогачев. Отдельная благодарность пользователю sobhan-m94 за обнаружение некоторых проблем и попытки их исправить.
🔥9❤2
#yiisoftRbac #yiisoftRbacPhp #yiisoftRbacCycleDb #yiisoftRbacDb #МажорныйРелиз #МинорныйРелиз #Релиз
Большой релиз RBAC пакетов
RBAC пакеты получили большое обновление:
- 🎁 RBAC 2.0
- 🎁 RBAC PHP Storage 2.0
- 🎁 RBAC Cycle Database Storage 3.0
- 🎁 RBAC Yii Database Storage 2.0
- 🎁 RBAC Rules Container 2.1
Рассказываем, что было исправлено и появилось нового.
Поднятие версии PHP
Подняли минимальную версию PHP во всех RBAC пакетах до 8.1.
Качество кода
Повысили качество кода согласно установленным стандартам во всех пакетах:
- 1й уровень в статическом анализаторе Psalm.
- 100% покрытие кода юнит тестами.
- 100% в мутационном тестировании.
Использование хранилищ через Manager
В предыдущей версии было уделено недостаточное внимание тестированию хранилищ в связке с
именно через него нужно взаимодействовать с хранилищами, а не напрямую. Были добавлены соответствующие тесты, а также
устранен ряд сопутствующих проблем.
В частности, убрана связность хранилищ (это было более актуально для реализаций на основе БД). То есть теперь можно
полноценно использовать разные комбинации хранилищ, как и задумывалось изначально. Такое было возможно и в Yii 2. Один
из частых кейсов - когда права и роли хранятся в PHP файле (обновляются реже), а назначения - в базе данных (обновляются
чаще).
Также проведена масштабная оптимизация производительности.
Проверка прав доступа
- Исправлена проблема, когда правила не выполнялись для гостей и других элементов в ветви дерева иерархии.
- Теперь можно проверять наличие у пользователя не только прав, но и ролей.
- Право теперь разрешается для пользователя при наличии доступа хотя бы по одной ветви иерархии доступа.
Простые реализации хранилищ
Добавлены простые реализация хранилищ. Главная их особенность - наполнение свойств соответствующего класса при
считывании из хранилищ и дальнейшее продолжение работы уже со свойствами. Помимо полноценного тестирования базового
пакета (он не может быть использован отдельно), это позволило избавиться от повторяющегося кода в PHP реализации (с
соответствующими доработками для конкуретности).
Специфические изменения для разных реализаций хранилищ
Хранилище RBAC PHP
- Добавлена поддержка конкурентности, что может быть полезно при одновременном редактировании файла.
- Исправлены проблемы с сохранением времени создания и редактирования прав / ролей и назначений.
- Немного упростили процесс указания файла при конфигурировании хранилищ.
Сохранена возможность ручного редактирования файла. Заметьте, что в этом случае вам нужно вручную синхронизировать
изменения в другом хранилище. Если предпочтение отдаётся этому способу - опциональные поля можно не указывать, как и
временные метки - в случае их отсутствия будет выполен fallback на дату изменения файла. Дата изменения файла теперь
тоже кастомизируется. Помимо временных меток, её изменение является триггером к обновлению данных при включённом режиме
обработки конкуретности.
Хранилища RBAC Cycle DB & RBAC Yii DB
Оптимизация производительности
Помимо оптимизации в базовом пакете, проведена оптимизация, специфическая для БД.
Миграции
Мы наконец-то определились, как будут выполняться миграции. Решили отказаться от экспериментальных подходов с чистым
SQL, CLI и использовать соответствующие пакеты - Cycle Migrations и
Yii DB Migration (тем более, что последний не так давно получил первую
стабильную версию).
В продолжение темы убирания связности - каждое хранилище получило свой независимый набор миграций. Таким образом, если
вы решите хранить в базе только назначения - то таблицы для элементов даже не будут созданы изначально.
Также была облегчена миграция существующих данных с Yii 2 путём сохранения оригинальных имён свойств сущностей,
насколько это возможно.
Большой релиз RBAC пакетов
RBAC пакеты получили большое обновление:
- 🎁 RBAC 2.0
- 🎁 RBAC PHP Storage 2.0
- 🎁 RBAC Cycle Database Storage 3.0
- 🎁 RBAC Yii Database Storage 2.0
- 🎁 RBAC Rules Container 2.1
Рассказываем, что было исправлено и появилось нового.
Поднятие версии PHP
Подняли минимальную версию PHP во всех RBAC пакетах до 8.1.
Качество кода
Повысили качество кода согласно установленным стандартам во всех пакетах:
- 1й уровень в статическом анализаторе Psalm.
- 100% покрытие кода юнит тестами.
- 100% в мутационном тестировании.
Использование хранилищ через Manager
В предыдущей версии было уделено недостаточное внимание тестированию хранилищ в связке с
Manager
. Напомним, что именно через него нужно взаимодействовать с хранилищами, а не напрямую. Были добавлены соответствующие тесты, а также
устранен ряд сопутствующих проблем.
В частности, убрана связность хранилищ (это было более актуально для реализаций на основе БД). То есть теперь можно
полноценно использовать разные комбинации хранилищ, как и задумывалось изначально. Такое было возможно и в Yii 2. Один
из частых кейсов - когда права и роли хранятся в PHP файле (обновляются реже), а назначения - в базе данных (обновляются
чаще).
Также проведена масштабная оптимизация производительности.
Проверка прав доступа
- Исправлена проблема, когда правила не выполнялись для гостей и других элементов в ветви дерева иерархии.
- Теперь можно проверять наличие у пользователя не только прав, но и ролей.
- Право теперь разрешается для пользователя при наличии доступа хотя бы по одной ветви иерархии доступа.
Простые реализации хранилищ
Добавлены простые реализация хранилищ. Главная их особенность - наполнение свойств соответствующего класса при
считывании из хранилищ и дальнейшее продолжение работы уже со свойствами. Помимо полноценного тестирования базового
пакета (он не может быть использован отдельно), это позволило избавиться от повторяющегося кода в PHP реализации (с
соответствующими доработками для конкуретности).
Специфические изменения для разных реализаций хранилищ
Хранилище RBAC PHP
- Добавлена поддержка конкурентности, что может быть полезно при одновременном редактировании файла.
- Исправлены проблемы с сохранением времени создания и редактирования прав / ролей и назначений.
- Немного упростили процесс указания файла при конфигурировании хранилищ.
Сохранена возможность ручного редактирования файла. Заметьте, что в этом случае вам нужно вручную синхронизировать
изменения в другом хранилище. Если предпочтение отдаётся этому способу - опциональные поля можно не указывать, как и
временные метки - в случае их отсутствия будет выполен fallback на дату изменения файла. Дата изменения файла теперь
тоже кастомизируется. Помимо временных меток, её изменение является триггером к обновлению данных при включённом режиме
обработки конкуретности.
Хранилища RBAC Cycle DB & RBAC Yii DB
Оптимизация производительности
Помимо оптимизации в базовом пакете, проведена оптимизация, специфическая для БД.
Миграции
Мы наконец-то определились, как будут выполняться миграции. Решили отказаться от экспериментальных подходов с чистым
SQL, CLI и использовать соответствующие пакеты - Cycle Migrations и
Yii DB Migration (тем более, что последний не так давно получил первую
стабильную версию).
В продолжение темы убирания связности - каждое хранилище получило свой независимый набор миграций. Таким образом, если
вы решите хранить в базе только назначения - то таблицы для элементов даже не будут созданы изначально.
Также была облегчена миграция существующих данных с Yii 2 путём сохранения оригинальных имён свойств сущностей,
насколько это возможно.
GitHub
GitHub - yiisoft/rbac: Role based access control
Role based access control. Contribute to yiisoft/rbac development by creating an account on GitHub.
🔥23👍3