Files
SGF/scripts/stock-ledger-observer-http.php
2026-11-04 09:37:20 +02:00

9 lines
1.3 KiB
PHP

<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::middleware('web')->get('/qa/stock-observer/{role}',function(Request $r,string $role)use($f){abort_unless(in_array($role,['reader','limited','foreign-unit','foreign-company'],true),404);$id=$role==='limited'?$f['validator']:$f['actor'];$u=App\Models\User::findOrFail($id);auth()->login($u);$r->session()->put('auth_version',$u->auth_version);$token=bin2hex(random_bytes(24));$selection=$f['scope']+['token'=>$token,'module_id'=>$r->query('module','accounting')];if($role==='foreign-unit')$selection['unit_id']=1;if($role==='foreign-company')$selection['company_id']=1;$r->session()->put('company_context',$selection);if($r->query('open')==='1')return redirect('/general-ledger/stock-valuation');return response()->json(['csrf'=>csrf_token(),'context'=>$token]);});
if(($_SERVER['HTTP_X_QA_SOURCE']??'')==='missing')config(['stock_ledger.read_sources'=>[]]);
if(($_SERVER['HTTP_X_QA_SOURCE']??'')==='wrong-scope')config(['stock_ledger.read_sources.'.$key.'.native_scope'=>['tenant_id'=>999999,'company_id'=>0,'unit_id'=>0]]);
if(($_SERVER['HTTP_X_QA_SOURCE']??'')==='wrong-role')config(['database.connections.stock_valuation_source.username'=>'unapproved_role']);
$app->handleRequest(Request::capture());exit;