Files
ladill-meet/app/Http/Controllers/Meet/SettingsController.php
T
isaaccladandCursor 965fb992e9
Deploy Ladill Meet / deploy (push) Failing after 7s
Initial Ladill Meet release.
Phases 0–18: core meetings, webinar, breakouts, team chat, live streaming, town hall, billing, and Ladill Mail calendar wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 23:35:29 +00:00

59 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers\Meet;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Meet\Concerns\ScopesToAccount;
use App\Services\Meet\SecurityPolicyService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class SettingsController extends Controller
{
use ScopesToAccount;
public function security(Request $request): View
{
$this->authorizeAbility($request, 'meetings.manage');
$organization = $this->organization($request);
return view('meet.settings.security', [
'organization' => $organization,
'policy' => array_merge(config('meet.security_defaults'), $organization->security_policy ?? []),
]);
}
public function updateSecurity(Request $request, SecurityPolicyService $security): RedirectResponse
{
$this->authorizeAbility($request, 'meetings.manage');
$organization = $this->organization($request);
$validated = $request->validate([
'org_only' => ['sometimes', 'boolean'],
'authenticated_only' => ['sometimes', 'boolean'],
'allowed_domains' => ['nullable', 'string'],
'recording_host_only' => ['sometimes', 'boolean'],
'watermark_enabled' => ['sometimes', 'boolean'],
'session_idle_minutes' => ['nullable', 'integer', 'min:15', 'max:480'],
]);
$domains = collect(explode(',', (string) ($validated['allowed_domains'] ?? '')))
->map(fn ($d) => trim($d))
->filter()
->values()
->all();
$security->updateOrganizationPolicy($organization, [
'org_only' => $request->boolean('org_only'),
'authenticated_only' => $request->boolean('authenticated_only'),
'allowed_domains' => $domains,
'recording_host_only' => $request->boolean('recording_host_only', true),
'watermark_enabled' => $request->boolean('watermark_enabled'),
'session_idle_minutes' => $validated['session_idle_minutes'] ?? 120,
]);
return redirect()->route('meet.settings.security')->with('success', 'Security policy updated.');
}
}