alchemy/acl-bundle
Symfony bundle providing a simple ACL API. Configure object types, alias your UserRepository, and add Redis cache for access tokens. Exposes endpoints to list, upsert, and delete ACEs by user/group, object type/id, with permission masks and wildcards.
Publication/Asset instances) without reinventing the wheel. Ideal for platforms where contextual access (e.g., "Editor X can edit Draft Y but not Published Z") is critical.
expires_at, reason). Aligns with compliance needs (GDPR, SOC2) and dynamic workflows.
metadata: {expires_at: "2024-12-31"}./permissions/aces, /permissions/ace) for headless integration, enabling:
Publication, Asset) to replace ad-hoc checks like if ($user->isAdmin()).who, when, why for every permission change).status: "review").expires_at: "2024-12-31").metadata: {department: "finance"} for financial data).userType: group, userId: tenant-123).department AND clearance_level). This bundle is not a full ABAC solution—consider:
Gate/Policy system).For Executives: *"This bundle gives us enterprise-grade permissions with minimal effort. Key benefits:
reason: "client_request"), which is critical for compliance.For Engineering: *"The 1.1.0 release adds two game-changers:
PUT /permissions/ace with metadata={"expires_at": "2024-12-31"}). Enables:
metadata.status for workflows)./permissions/aces API.mask: 7) instead of Laravel’s Gate methods. We’ll need a helper to map them (e.g., maskToPermission()).
Recommendation: Use this for object-level permissions + audit trails. For ABAC or complex policies, pair it with Laravel’s Gate/Policy system or evaluate Casbin."*For Product Managers: *"This solves three key problems:
if ($user->isAdmin()) checks with a centralized, auditable system.reason: "editorial_override"), which is critical for GDPR/SOC2.How can I help you explore Laravel packages today?