ezsystems/ezmbpaex-ls
Legacy eZ Publish extension (MBPAEx) that adds password expiration and policy enforcement to user accounts, so sites can require periodic password changes and notify affected users. Packaged as ezsystems/ezmbpaex-ls for older eZ Publish installations.
Verdict: Do not adopt. This is not a Laravel package — it is a deprecated eZ Publish legacy extension (ezmbpaex, "multi binary password attribute extension") that implements password expiry, password-change enforcement, and password policy checks against the eZ Publish 4/5 user model. The classification in the intake record ("Laravel/PHP package") is a metadata artifact of Packagist/composer-style indexing. Treating it as a Composer dependency for a Laravel app is a category error.
Architecture fit
mbpaex.ini, site.ini overrides); templates are eZTemplate (.tpl), not Blade.eZUser, eZUserType, eZContentObjectAttribute, and the legacy datatype/hook system (preUpdate, postUpdate attribute hooks). None of these have analogues a Laravel app can satisfy.Integration feasibility
Password rule objects plus a custom rule for history/reuse, a password_changed_at column, a middleware or Fortify/Breeze login listener that redirects to a forced-change screen, and queued notifications for expiry warnings. Estimated 2–4 engineer-weeks including tests and backfill, versus an unbounded fork-and-port effort.NOASSERTION is a red flag, not a formality. eZ Publish legacy was largely GPL-2.0, but we cannot rely on inference — legal review is required before copying any code, and copying is the only thing that would make this artifact useful.Technical risk
users table.Key questions for the requester
NOASSERTION, or can we confirm the upstream license text?Stack fit
Migration path
password_changed_at, password_history table), a PasswordPolicy service, a Password rule for reuse, a ForcePasswordChange middleware on the authenticated route group, expiry notifications via a scheduled command, and an artisan backfill for existing users.Compatibility
Sequencing
Maintenance
Support
Scaling
Failure modes
password_changed_at to now() disables enforcement for existing users; setting it to epoch expires everyone at once. Choose deliberately.Ramp-up
Recommendation to the decision-maker: decline the dependency. Re-scope the request as a password-policy feature and fund the 2–4 week native build. Escalate immediately if the requester's environment is Laravel, since the intake metadata is misleading and any procurement based on it would be wasted.
How can I help you explore Laravel packages today?