Separating Purchase and Sell Report Permissions in Ultimate POS
This guide explains how to split the combined purchase_n_sell_report.view
permission into separate purchase_report.view
and sell_report.view
permissions in Ultimate POS Laravel application.
Overview​
Currently, Ultimate POS uses a single permission purchase_n_sell_report.view
to control access to both purchase and sell reports. This guide will show you how to separate these into two distinct permissions for better role-based access control.
Files to Modify​
The following files need to be updated:
database/seeders/PermissionsTableSeeder.php
- Add new permissionsapp/Http/Middleware/AdminSidebarMenu.php
- Update menu visibility logicapp/Http/Controllers/ReportController.php
- Update permission checksresources/views/role/create.blade.php
- Update role creation formresources/views/role/edit.blade.php
- Update role editing form
Step-by-Step Implementation​
Step 1: Add New Permissions to Seeder​
Update database/seeders/PermissionsTableSeeder.php
:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
class PermissionsTableSeeder extends Seeder
{
public function run()
{
$data = [
// ... existing permissions ...
// Replace the old combined permission with separate ones
// ['name' => 'purchase_n_sell_report.view'], // Remove this line
['name' => 'purchase_report.view'], // Add this
['name' => 'sell_report.view'], // Add this
// ... rest of existing permissions ...
];
$insert_data = [];
$time_stamp = \Carbon::now()->toDateTimeString();
foreach ($data as $d) {
$d['guard_name'] = 'web';
$d['created_at'] = $time_stamp;
$insert_data[] = $d;
}
Permission::insert($insert_data);
}
}
Loading...
💛 Support this project