nowo-tech/user-kit-bundle

Symfony bundle for user account enable/disable, last activity tracking, and online presence detection.

Maintainers

Package info

github.com/nowo-tech/UserKitBundle

Type:symfony-bundle

pkg:composer/nowo-tech/user-kit-bundle

Transparency log

Fund package maintenance!

HecFranco

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.1 2026-07-14 13:54 UTC

This package is auto-updated.

Last update: 2026-07-14 13:56:19 UTC


README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

Found this useful? Install from Packagist and give the repo a star on GitHub.

Symfony bundle for user account lifecycle and presence: enable/disable accounts (UserChecker), throttled lastActivityAt updates, and configurable online detection.

Designed to complement nowo-tech/auth-kit-bundle without a hard Composer dependency.

Features

  • enabled / disabled accountsAccountStatusUserChecker blocks login for disabled users
  • lastActivityAt — updated on authenticated HTTP requests (throttled)
  • online_thresholdUserPresenceResolver::isOnline() and optional Twig user_is_online()
  • Named profiles — separate config per user entity (User, Admin, …) with O(1) class resolution
  • Session invalidation hook — optional listener when an account is disabled
  • Optional traitsEnabledUserTrait, LastActivityTrait
  • Translations — domain NowoUserKitBundle (de, en, es, fr, it, nl, pt)

Requirements

  • PHP 8.2+
  • Symfony 7.4 | 8.x

Quick start

composer require nowo-tech/user-kit-bundle
# config/packages/nowo_user_kit.yaml
nowo_user_kit:
    default_profile: default
    profiles:
        default:
            user_class: App\Entity\User
            account_status:
                enabled: true
            last_activity:
                enabled: true
                online_threshold: 300

The legacy flat layout (user_class at root) remains supported. See Configuration.

AuthKit coexistence

Login (AuthKit) → form_login → UserProvider → UserChecker (UserKit) → OK / blocked

Use the same user_class in both bundles. UserKit may inherit user_class from nowo_auth_kit.user_class when that parameter exists.

Development

make up
make test-coverage-100
make phpstan

Demo

make -C demo up    # Symfony 8.1 — http://localhost:8023

Login with demo@user-kit.test / demo. The demo runs under FrankenPHP in Docker. See demo/README.md and docs/DEMO-FRANKENPHP.md for development vs production setup, including FrankenPHP worker mode for production.

Tests and coverage

  • PHP: 100% line coverage on src/ (verified via make test-coverage-100)
  • Compatibility: PHP 8.2+ · Symfony 7.4 / 8.x (CI matrix)

Package

  • Composer: nowo-tech/user-kit-bundle
  • Config root: nowo_user_kit

Documentation

Additional documentation