diff --git a/src/app/Models/Data/UserData.php b/src/app/Models/Data/UserData.php index 9d789572..e90ea1e6 100644 --- a/src/app/Models/Data/UserData.php +++ b/src/app/Models/Data/UserData.php @@ -22,7 +22,7 @@ public function normalizeForGtm() $gtmUserData['vid'] = $normalizedData['external_id'][0]; $gtmUserData['uid'] = $normalizedData['external_id'][1] ?? null; $gtmUserData['user_id'] = $gtmUserData['uid']; - $gtmUserData['user_type'] = Auth::check() ? Auth::user()->usergroup_id : 'guest'; + $gtmUserData['user_type'] = Auth::check() ? Auth::user()->group_id : 'guest'; return array_filter($gtmUserData); } diff --git a/src/app/Providers/AppServiceProvider.php b/src/app/Providers/AppServiceProvider.php index a7b64b1d..6e768c97 100644 --- a/src/app/Providers/AppServiceProvider.php +++ b/src/app/Providers/AppServiceProvider.php @@ -12,13 +12,18 @@ use App\Services\OrderService; use FacebookAds\Api; use Illuminate\Database\Connection; +use Illuminate\Database\Eloquent\Model; +use Illuminate\Foundation\Application; use Illuminate\Notifications\ChannelManager; use Illuminate\Pagination\Paginator; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; +use Sentry\Severity; use Spatie\Permission\Models\Role; +use function Sentry\captureMessage; + class AppServiceProvider extends ServiceProvider { public $bindings = [ @@ -63,6 +68,8 @@ public function boot(): void setlocale(LC_TIME, 'ru_RU.UTF-8'); Carbon::setLocale(config('app.locale')); + $this->modelShouldBeStrict($app->isProduction()); + if ($app->isProduction()) { $app['request']->server->set('HTTPS', 'on'); } @@ -73,4 +80,23 @@ public function boot(): void Gate::policy(Role::class, RolePolicy::class); } + + /** + * Model::shouldBeStrict() + */ + private function modelShouldBeStrict(bool $isProduction): void + { + Model::preventAccessingMissingAttributes(); + // Warn us when we try to set an unfillable property. + Model::preventSilentlyDiscardingAttributes(); + + Model::preventLazyLoading(!$isProduction); + // if ($isProduction) { + // Model::handleLazyLoadingViolationUsing(function ($model, $relation) { + // $class = get_class($model); + + // captureMessage("Attempted to lazy load [{$relation}] on model [{$class}].", Severity::warning()); + // }); + // } + } } diff --git a/src/app/Providers/GoogleTagManagerProvider.php b/src/app/Providers/GoogleTagManagerProvider.php index 4b9c47c6..616ce3be 100644 --- a/src/app/Providers/GoogleTagManagerProvider.php +++ b/src/app/Providers/GoogleTagManagerProvider.php @@ -37,7 +37,7 @@ public function boot() $userData->setExternalIds([Device::getId(), Auth::id()]); GoogleTagManagerFacade::push(array_filter([ 'pageType' => $page, - 'user_type' => Auth::check() ? Auth::user()->usergroup_id : 'guest', + 'user_type' => Auth::check() ? Auth::user()->group_id : 'guest', 'user_id' => Auth::id(), 'user_data' => $userData->normalizeForGtm(), 'site_price' => [