create show access middleware

This commit is contained in:
2025-05-19 14:40:02 +03:30
parent 367eb55db1
commit 4ff296e476
4 changed files with 44 additions and 10 deletions

View File

@@ -7,10 +7,10 @@ enum MissionStates: int
case REQUEST_CREATED= 1; case REQUEST_CREATED= 1;
case PENDING_CONFIRMATION = 2; case PENDING_CONFIRMATION = 2;
case START_MISSION = 3; case START_MISSION = 3;
case END_MISSION = 4; case END_MISSION = 4;
case REJECT_BY_TRANSPORTATION = 5; case REJECT_BY_TRANSPORTATION = 5;
case REJECT_BY_CONTROL_UNIT = 6; case REJECT_BY_CONTROL_UNIT = 6;
case CANCELLED = 7;
public static function name(int $state): string public static function name(int $state): string
{ {
@@ -21,6 +21,7 @@ enum MissionStates: int
4 => 'اتمام ماموریت', 4 => 'اتمام ماموریت',
5 => 'عدم تخصیص خودرو توسط واحد نقلیه و بازگشت درخواست به کارتابل کاربر', 5 => 'عدم تخصیص خودرو توسط واحد نقلیه و بازگشت درخواست به کارتابل کاربر',
6 => 'عدم تایید توسط واحد کنترل', 6 => 'عدم تایید توسط واحد کنترل',
7 => 'ماموریت لغو شد',
]; ];
return $mapArray[$state]; return $mapArray[$state];

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Http\Middleware;
use App\Exceptions\ProhibitedAction;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
use Throwable;
class ValidateShowAccess
{
/**
* Handle an incoming request.
*
* @param Closure(Request): (Response) $next
* @throws Throwable
*/
public function handle(Request $request, Closure $next): Response
{
$user = Auth::user();
throw_if (is_null($user->province_id),
new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
throw_if(is_null($user->edarate_shahri_id),
new ProhibitedAction('اداره شهری برای شما در سامانه ثبت نشده است!'));
return $next($request);
}
}

View File

@@ -3,24 +3,24 @@
namespace App\Services\Cartables\Mission; namespace App\Services\Cartables\Mission;
use App\Enums\MissionStates; use App\Enums\MissionStates;
use App\Exceptions\ProhibitedAction;
use App\Facades\DataTable\DataTableFacade; use App\Facades\DataTable\DataTableFacade;
use App\Models\Mission; use App\Models\Mission;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class TransportationUnitService class TransportationUnitService
{ {
public function dataTable(Request $request) public function dataTable(Request $request)
{ {
$user = auth()->user();
$fields = [ $fields = [
'id', '', '', '', '' 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machine_type', 'requested_machine_numbers', 'type',
'start_date', 'end_date', 'request_date', 'start_point', 'end_point',
]; ];
// throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!')); $query = Mission::query()
->where('state_id', '=', MissionStates::REQUEST_CREATED->value)
$query = Mission::query()->where('state_id', '=', MissionStates::REQUEST_CREATED->value); ->where('edare_shahri_name', '=', Auth::user()->edarate_shahri_id);
return DataTableFacade::run( return DataTableFacade::run(
$query, $query,

View File

@@ -14,13 +14,14 @@ return new class extends Migration
Schema::create('missions', function (Blueprint $table) { Schema::create('missions', function (Blueprint $table) {
$table->id(); $table->id();
$table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); $table->foreignId('user_id')->constrained('users')->cascadeOnDelete();
$table->string('username');
$table->foreignId('machine_id')->nullable()->constrained('cmms_machines')->noActionOnDelete(); $table->foreignId('machine_id')->nullable()->constrained('cmms_machines')->noActionOnDelete();
$table->foreignId('rahdar_id')->constrained('rahdaran')->noActionOnDelete(); $table->foreignId('rahdar_id')->constrained('rahdaran')->noActionOnDelete();
$table->foreignId('state_id')->constrained('mission_states')->noActionOnDelete(); $table->foreignId('state_id')->constrained('mission_states')->noActionOnDelete();
$table->string('state_name'); $table->string('state_name');
$table->foreignId('province_id')->constrained('provinces')->noActionOnDelete(); $table->foreignId('province_id')->nullable()->constrained('provinces')->noActionOnDelete();
$table->string('province_name'); $table->string('province_name');
$table->foreignId('edare_shahri_id')->constrained('edarate_shahri')->noActionOnDelete(); $table->foreignId('edare_shahri_id')->nullable()->constrained('edarate_shahri')->noActionOnDelete();
$table->string('edare_shahri_name'); $table->string('edare_shahri_name');
$table->string('requested_machine_type'); $table->string('requested_machine_type');
$table->integer('requested_machine_numbers'); $table->integer('requested_machine_numbers');