ABAC гибче RBAC — решение на основе атрибутов субъекта, ресурса, окружения. Пример: user.role == "author" AND resource.status != "published" AND time.hour < 18 → allow. casl библиотека: ability.define(["update", "Post", { authorId: user.id }]) — пользователь может редактировать только свои посты. ability.can("update", post) — проверка. @casl/prisma для интеграции с Prisma. Более сложно в реализации чем RBAC, но даёт тонкий контроль. Используй когда роли недостаточно гибки.
Что такое ABAC (Attribute-Based Access Control) и как реализовать?
Senior
226 просмотровAFK Offer AI
Как реализовать exhaustive checks в TypeScript?