chani / safi-admin-panel
Admin Panel Extension for Safi Microframework
v0.1.1
2026-08-02 00:15 UTC
Requires
- php: ^8.5
- chani/safi-auth: ^0.1.0
- chani/safi-core: ^0.1.0
- chani/safi-session: ^0.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
- rector/rector: ^2.0
- vimeo/psalm: ^6.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-05 19:46:46 UTC
README
Admin Panel, User Directory, RBAC Management, and Telemetry extension for the Safi Microframework.
1. Features
- System Telemetry Dashboard: Real-time execution latency, memory footprint, OPcache/APCu status, and log inspection.
- User & 2FA Management: Account lifecycle control, mandatory password change flags, 2FA/TOTP setup with QR codes, and 2FA resets.
- Security & Sessions: Active session inspection, manual session termination, and IP rate-limiting unlock controls.
- RBAC & Group Hierarchy: Management of scanned system permissions (
#[Permission]) and user group inheritance (GroupPermission/UserPermission). - Framework Inspectors: Route topology registry, active DI container bindings inspection, and Diátaxis documentation viewer with path traversal guard.
2. Service Provider Registration
Register AdminPanelServiceProvider into the Assembler during application bootstrapping (init.inc.php):
use Safi\Extensions\AdminPanel\AdminPanelServiceProvider; $componentManager->bootProviders([ // ... new AdminPanelServiceProvider(), ]);
3. Endpoints Overview
| URI | Method | Protected | Controller Action | Purpose |
|---|---|---|---|---|
/admin |
GET |
Yes (Admin) | AdminDashboardController::index |
Telemetry Dashboard |
/admin/users |
GET |
Yes (Admin) | AdminUserController::index |
User Directory |
/admin/users/save |
POST |
Yes (Admin) | AdminUserController::save |
Create/Update User |
/admin/users/delete |
POST |
Yes (Admin) | AdminUserController::delete |
Delete User Account |
/admin/users/2fa |
GET |
Yes (Admin) | AdminUserController::show2fa |
2FA QR Code Setup Portal |
/admin/users/2fa/generate |
POST |
Yes (Admin) | AdminUserController::generate2fa |
Generate TOTP Secret |
/admin/users/2fa/enable |
POST |
Yes (Admin) | AdminUserController::enable2fa |
Confirm & Enable 2FA |
/admin/users/2fa/reset |
POST |
Yes (Admin) | AdminUserController::reset2fa |
Reset TOTP Secret |
/admin/sessions |
GET |
Yes (Admin) | AdminSessionController::index |
Active Sessions & IP Locks |
/admin/sessions/unlock |
POST |
Yes (Admin) | AdminSessionController::unlock |
Unlock Single Banned IP |
/admin/sessions/unlock-bulk |
POST |
Yes (Admin) | AdminSessionController::unlockBulk |
Unlock Multiple IPs |
/admin/sessions/kill |
POST |
Yes (Admin) | AdminSessionController::kill |
Terminate Active Session |
/admin/routes |
GET |
Yes (Admin) | AdminInspectorController::routes |
Route Topology Registry |
/admin/packages |
GET |
Yes (Admin) | AdminInspectorController::packages |
DI Bindings & Packages |
/admin/docs |
GET |
Yes (Admin) | AdminInspectorController::docs |
Framework Doc Viewer |
/admin/groups |
GET |
Yes (Admin) | AdminRbacController::groups |
RBAC Group Directory |
/admin/groups/save |
POST |
Yes (Admin) | AdminRbacController::saveGroup |
Save User Group |
/admin/permissions |
GET |
Yes (Admin) | AdminRbacController::permissions |
System Permissions List |
/admin/permissions/assign-group |
POST |
Yes (Admin) | AdminRbacController::assignGroupPermission |
Assign Permission to Group |
/admin/permissions/assign-user |
POST |
Yes (Admin) | AdminRbacController::assignUserPermission |
Assign Permission to User |
License
MIT License. Author: Jean Bruenn