Skip to main content

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.

Role permission

Files to Modify​

The following files need to be updated:

  1. database/seeders/PermissionsTableSeeder.php - Add new permissions
  2. app/Http/Middleware/AdminSidebarMenu.php - Update menu visibility logic
  3. app/Http/Controllers/ReportController.php - Update permission checks
  4. resources/views/role/create.blade.php - Update role creation form
  5. resources/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

Premium Login