semitexa / platform-user
Semitexa Platform User - the identity store: users, password credentials, roles and tenant binding behind the auth contracts
Package info
github.com/semitexa/platform-user
Type:semitexa-module
pkg:composer/semitexa/platform-user
Requires
- php: ^8.4
- semitexa/auth: >=2026.10.29.1052 || dev-master
- semitexa/core: >=2026.10.29.1052 || dev-master
- semitexa/mail: >=2026.10.29.1052 || dev-master
- semitexa/orm: >=2026.10.29.1052 || dev-master
- semitexa/rbac: *
Requires (Dev)
- phpunit/phpunit: ^10.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-29 17:47:46 UTC
README
semitexa/platform-user
The identity store behind the semitexa/auth contracts: people who sign in, their password credentials, roles and tenant binding, and the lockout that follows repeated failed sign-ins.
Install
Not included by the installer. Add it to an existing project from the project root:
docker compose run --rm --no-deps --user "$(id -u):$(id -g)" app composer require semitexa/platform-user
bin/semitexa server:restart
bin/semitexa orm:sync
semitexa/os already requires it.
What it provides
- The
platform_usertable, thePlatformUserdomain model andPlatformUserRepositoryInterface. PlatformUserProvider, bound toSemitexa\Auth\Domain\Contract\UserProviderInterface, andUserAuthenticator(password check, lockout).- Roles
owner,admin,editor. - Lockout settings:
PLATFORM_USER_MAX_ATTEMPTS(default 5) andPLATFORM_USER_LOCK_SECONDS(default 900). - Console commands:
bin/semitexa user:add --email=… [--tenant=…] [--role=owner|admin|editor] [--name=…](--tenantis required for every role except owner; the password is prompted for when omitted);bin/semitexa user:list [--tenant=…] [--all];bin/semitexa user:password --email=…(also clears a lockout);bin/semitexa user:disable --email=… [--enable].
- Password reset:
PasswordResetService(single-use, expiring links) andMailPasswordResetMailer, which mails the link oncePLATFORM_USER_RESET_URL(a URL with{token}) is set; platform-ui ships the forms' actions. - Stored roles for semitexa/rbac: the
platform_roleandplatform_user_roletables andStoredRolePermissionProvider, managed withrole:create,role:grant,role:assign,role:listandrole:delete(a site's role grants only on that site; see the RBAC guide).
Documentation
Commands: https://semitexa.com/docs/reference/commands-user
License
MIT, see LICENSE.