mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-07-17 06:15:20 +00:00
Finishes the Support/ consolidation pass: the three remaining root-level files get grouped into purpose-named subdirs, matching the shape the Pdf/, Hashids/, Update/, and Module/ subdirs took in the earlier sweep. - BouncerDefaultScope → Support/Bouncer/ (Bouncer-specific authorization scope) - CustomPathGenerator → Support/Media/ (Spatie MediaLibrary path generator — media config references it from config/media-library.php) - InstallWizardAuth → Support/Setup/ (folded into the existing Setup/ subdir alongside EnvironmentManager, FilePermissionChecker, InstallUtils, RequirementsChecker — it's install-wizard-flow state) 4 consumer files updated (AppServiceProvider, LoginController, UseInstallWizardTokenAuth middleware, config/media-library.php). app/Support/ root is now completely empty of standalone PHP files except helpers.php.
39 lines
892 B
PHP
39 lines
892 B
PHP
<?php
|
|
|
|
namespace App\Support\Bouncer;
|
|
|
|
use Silber\Bouncer\Database\Scope\Scope;
|
|
|
|
class BouncerDefaultScope extends Scope
|
|
{
|
|
public function applyToModelQuery($query, $table = null)
|
|
{
|
|
if (is_null($this->scope) || $this->onlyScopeRelations) {
|
|
return $query;
|
|
}
|
|
|
|
if (is_null($table)) {
|
|
$table = $query->getModel()->getTable();
|
|
}
|
|
|
|
return $this->applyToQuery($query, $table);
|
|
}
|
|
|
|
public function applyToRelationQuery($query, $table)
|
|
{
|
|
if (is_null($this->scope)) {
|
|
return $query;
|
|
}
|
|
|
|
return $this->applyToQuery($query, $table);
|
|
}
|
|
|
|
protected function applyToQuery($query, $table)
|
|
{
|
|
return $query->where(function ($query) use ($table) {
|
|
$query->where("{$table}.scope", $this->scope)
|
|
->orWhereNull("{$table}.scope");
|
|
});
|
|
}
|
|
}
|