Coddingpro
Deprixa Plus - The Ultimate Courier & Logistics SaaS Platform

Deprixa Plus — Technical Architecture · Permissions Architecture (Spatie)

Deprixa Plus uses Spatie Laravel Permission for all access control. Permissions are stored in the permissions table and assigned to roles. Roles are assigned to users. The permission cache is stored in Redis.

php Copy

// In a controller: checking permissions public function destroy(Shipment $shipment) { $this->authorize('delete-shipments'); // or: Gate::authorize('delete-shipments'); // or: abort_unless(auth()->user()->can('delete-shipments'), 403);

$shipment->delete(); }

// In middleware (routes/web.php) Route::middleware(['auth', 'permission:manage-settings']) ->prefix('settings') ->group(function () { Route::get('/', [SettingsController::class, 'index']); // ... });

// In React (Inertia shared props) // HandleInertiaRequests.php shares: // $permissions = auth()->user()->getAllPermissions()->pluck('name') // Used in React as: page.props.auth.permissions.includes('delete-shipments')