Files
device-management/app/Http/Controllers/RevealTenantBasePasswordController.php
T
Wian Drs 1e80be180e
tests / ci (push) Has been cancelled
Initial commit device-management
2026-08-25 09:42:00 +07:00

34 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Enums\SystemRole;
use App\Models\TenantDeviceSetting;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\ValidationException;
class RevealTenantBasePasswordController extends Controller
{
public function __invoke(Request $request): JsonResponse
{
abort_unless($request->user()->hasRole(SystemRole::TenantAdmin->value), 403);
$data = $request->validate(['current_password' => ['required', 'string']]);
if (! Hash::check($data['current_password'], $request->user()->password)) {
throw ValidationException::withMessages(['current_password' => 'Password login tidak sesuai.']);
}
$setting = TenantDeviceSetting::where('tenant_id', $request->user()->tenant_id)->firstOrFail();
Log::notice('Tenant Admin revealed the base device password.', [
'tenant_id' => $request->user()->tenant_id,
'user_id' => $request->user()->id,
]);
return response()->json(['password' => $setting->base_password])
->header('Cache-Control', 'no-store, private')
->header('Pragma', 'no-cache');
}
}