HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/hi.naniguide.com/app/Http/Controllers/Admin/BuiltInTemplateSettingController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\BuiltInTemplateSetting;
use App\Models\CustomerGroup;
use Illuminate\Http\Request;

class BuiltInTemplateSettingController extends Controller
{
    public function edit(BuiltInTemplateSetting $builtInTemplateSetting)
    {
        return view('admin.built-in-templates.edit', [
            'setting' => $builtInTemplateSetting->loadMissing('customerGroups'),
            'customerGroups' => CustomerGroup::query()->orderBy('name')->get(),
        ]);
    }

    public function update(Request $request, BuiltInTemplateSetting $builtInTemplateSetting)
    {
        $data = $request->validate([
            'is_active' => ['boolean'],
            'available_to_all_groups' => ['boolean'],
            'customer_group_ids' => ['nullable', 'array'],
            'customer_group_ids.*' => ['integer', 'exists:customer_groups,id'],
        ]);

        $availableToAllGroups = (bool) ($data['available_to_all_groups'] ?? true);

        $builtInTemplateSetting->update([
            'is_active' => (bool) ($data['is_active'] ?? false),
            'available_to_all_groups' => $availableToAllGroups,
        ]);

        $groupIds = $availableToAllGroups ? [] : ($data['customer_group_ids'] ?? []);
        $ids = [];
        if (is_array($groupIds)) {
            $ids = array_values(array_unique(array_map(fn ($v) => (int) $v, $groupIds)));
        }

        if (empty($ids)) {
            $builtInTemplateSetting->customerGroups()->detach();
        } else {
            $builtInTemplateSetting->customerGroups()->sync($ids);
        }

        return redirect()
            ->route('admin.built-in-templates.edit', $builtInTemplateSetting)
            ->with('success', __('Template updated.'));
    }
}