fix: ajustar el filtrado de registros por módulo del usuario
This commit is contained in:
parent
2093ff7538
commit
43269ca04a
@ -9,7 +9,6 @@
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\VehicleTagLog;
|
use App\Models\VehicleTagLog;
|
||||||
use App\Models\Tag;
|
|
||||||
use App\Models\Module;
|
use App\Models\Module;
|
||||||
use App\Models\Record;
|
use App\Models\Record;
|
||||||
use App\Models\TagCancellationLog;
|
use App\Models\TagCancellationLog;
|
||||||
@ -21,6 +20,7 @@
|
|||||||
use PhpOffice\PhpSpreadsheet\Style\Border as PhpSpreadsheetBorder;
|
use PhpOffice\PhpSpreadsheet\Style\Border as PhpSpreadsheetBorder;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Fill;
|
use PhpOffice\PhpSpreadsheet\Style\Fill;
|
||||||
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
|
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1193,7 +1193,8 @@ public function exportSearchRecords(Request $request)
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// Reutilizar la misma query de búsqueda (sin paginación)
|
// Reutilizar la misma query de búsqueda (sin paginación)
|
||||||
$records = Record::with([
|
$records = Record::forUserModule(Auth::user())
|
||||||
|
->with([
|
||||||
'vehicle',
|
'vehicle',
|
||||||
'vehicle.owner',
|
'vehicle.owner',
|
||||||
'vehicle.tag:id,vehicle_id,folio,tag_number,status_id,package_id,module_id',
|
'vehicle.tag:id,vehicle_id,folio,tag_number,status_id,package_id,module_id',
|
||||||
|
|||||||
@ -63,12 +63,23 @@ public function vehicleTagLog()
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Filtra registros por módulo del usuario
|
* Filtra registros por módulo del usuario
|
||||||
|
* Admin y developer pueden ver todos los registros
|
||||||
|
* Otros usuarios solo ven registros de su módulo
|
||||||
*/
|
*/
|
||||||
public function scopeForUserModule($query, $user)
|
public function scopeForUserModule($query, $user)
|
||||||
{
|
{
|
||||||
if ($user->hasRole('admin')) {
|
$isAdminOrDeveloper = $user->hasRole(['admin', 'developer'])
|
||||||
|
|| $user->hasRole(['admin', 'developer'], 'api')
|
||||||
|
|| $user->roles()->whereIn('name', ['admin', 'developer'])->exists();
|
||||||
|
|
||||||
|
if ($isAdminOrDeveloper) {
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_null($user->module_id)) {
|
||||||
|
return $query->whereRaw('1 = 0');
|
||||||
|
}
|
||||||
|
|
||||||
return $query->where('module_id', $user->module_id);
|
return $query->where('module_id', $user->module_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user