Files
RomhackPlaza/app/Services/XenforoService.php
2026-05-20 18:25:15 +02:00

37 lines
1003 B
PHP

<?php
namespace App\Services;
use Illuminate\Support\Facades\Cache;
class XenforoService {
private const array PERMISSIONS_KEPT = [ 'general', 'romhackplaza' ];
private const int TTL_PERMISSIONS = 300;
public function getPermissions(int $userId, int $permissionCombinationId): array {
return Cache::remember("xf_permissions_{$userId}", self::TTL_PERMISSIONS, function() use($permissionCombinationId) {
$row = \DB::connection('xenforo')
->table('permission_combination')
->where('permission_combination_id', $permissionCombinationId)
->value('cache_value');
if( !$row )
return [];
$data = json_decode($row, true);
$data = array_intersect_key($data, array_flip(self::PERMISSIONS_KEPT));
return $data ?: [];
});
}
public function clearUserData(int $userId): void
{
Cache::forget("xf_permissions_{$userId}");
}
}