Getting started
Before going to production
The checks to make before a Xelqun panel goes live.
- Check
canAccessPanel(). It decides who gets in, in every environment. - Write a policy for every model. With no policy, or no such method, the answer is no, and a method that returns
truelets everyone with panel access through. - Scope
getEloquentQuery()to what the viewer may see. Every page, action and form request stays inside it, so this is your main line of defence. - Give each action its own
authorize(). An action does nothing without one. - Set up trusted proxies behind a proxy. Otherwise Laravel doesn't see the request as secure, and the browser's history isn't encrypted.
- Schedule the upload cleanup. Temporary uploads stay on disk until it runs.
use Illuminate\Support\Facades\Schedule;
Schedule::command('xelqun-forms:prune-uploads')->hourly();
Current limits
%and_in a search act as wildcards.discoverResources()walks its folder on every request.- Export ignores table filters, and only follows the tab.
- Signing out of one panel signs out of the others in that session.
- A queued verification email gets Laravel's route, not the panel's.
- Changing a password ends "remember me" on other devices, but not their open sessions. Add Laravel's
AuthenticateSessionmiddleware for that. - SSR isn't tested.
See parity with Filament for the full comparison.