lahirulhr/nova-lock-screen
Laravel Nova package that adds a lock screen to your admin panel. Users can quickly lock the Nova dashboard and unlock it with their password, helping protect unattended sessions. Simple to install and configure for Nova applications.
Because this package has zero stars, no dependents, and no published usage documentation beyond its description, treat the repo as the source of truth. The steps below are the typical flow for a Nova lock-screen tool; verify names against the package's README.md and composer.json before relying on them.
Install it
composer require lahirulhr/nova-lock-screen
Check the composer.json of the package first — Nova tools usually pin laravel/nova and may declare a tight PHP/Laravel range. If Composer resolves to an old build, look at the require block and the last commit date.
Register the tool with Nova
Lock screens are almost always Nova tools, so add it to app/Providers/NovaServiceProvider.php:
use Lahirulhr\NovaLockScreen\NovaLockScreen;
public function tools()
{
return [
new NovaLockScreen(),
];
}
Publish assets/config if offered
php artisan vendor:publish --provider="Lahirulhr\NovaLockScreen\NovaLockScreenServiceProvider"
Inspect what gets published — a JS/CSS bundle, a config file, or a migration. A lock-screen tool typically publishes a Vue component that hooks into Nova's layout.
First use case: lock the panel after N minutes of inactivity, then require the current user to re-enter their password to resume. That is the minimal, sensible thing to prove out — log in, walk away, come back, confirm you get the overlay and that a valid password unlocks it.
Where to look first, in order: the package's README.md, its src/ service provider (for config keys and Nova hooks), resources/js/ (to see how the lock state is persisted — cookie, localStorage, or session), and its migrations if any.
NovaServiceProvider::tools().config/nova-lock-screen.php or an env-driven value (often NOVA_LOCK_TIMEOUT). Standardize it with a matching Laravel session lifetime so the Nova lock fires before the session expires — otherwise users see the lock screen, type their password, and get bounced to login anyway.config/nova.php → guards), confirm the package reads Auth::guard(config('nova.guard')) — if it hardcodes Auth::user(), wrap or patch it.SESSION_LIFETIME and Nova's idle timeout so you get defense in depth: server-side session expiry plus a client-side lock overlay for convenience and shoulder-surfing protection.z-index conflict is the single most common integration issue with overlay tools.composer.json, vendor-lock it, and plan an exit: the lock screen is a small enough surface that forking a single Vue component is a realistic fallback if the package breaks on a Nova upgrade.package.json against your Nova version; a mismatch usually manifests as a blank panel or a missing overlay, not a clean error.window.location.reload().auth middleware or session expiry on sensitive routes; combine it with server-side policies.tools(), (2) php artisan nova:publish ran after install, (3) the compiled JS is served from public/vendor/… and not stale cache (npm run dev in the Nova app if you have a custom nova-components build), and (4) browser console for a Vue mount error — that will tell you if it is a version mismatch.php artisan config:clear; a cached config with the old timeout is the most frequent "it doesn't lock" report.NovaLockScreenServiceProvider) and the main tool class are where you would add a canSee/canRun guard, swap the timeout source, or override the Vue component via Nova::script(). If the package exposes none of these, that is the argument for a fork rather than a PR.How can I help you explore Laravel packages today?