Files
sam-api/app/Services/AdminPermissionService.php

44 lines
1.1 KiB
PHP
Raw Permalink Normal View History

2025-07-17 10:05:47 +09:00
<?php
namespace App\Services;
use App\Models\Members\User;
2025-07-17 10:05:47 +09:00
use App\Models\SiteAdmin;
2025-07-29 13:00:25 +09:00
use Illuminate\Support\Facades\DB;
2025-07-17 10:05:47 +09:00
class AdminPermissionService
{
public static function getPermissionsByToken(string $userToken): array
{
$user = User::where('USER_TOKEN', $userToken)
->first();
if (! $user) {
return [];
}
2025-07-17 10:05:47 +09:00
$admin = SiteAdmin::where('UNO', $user->USER_NO)
->first();
if (! $admin) {
return [];
}
2025-07-17 10:05:47 +09:00
$permissionCodes = DB::table('SITE_ADMIN_USER_ROLE AS ur')
->join('SITE_ADMIN_ROLE_PERMISSION AS rp', 'ur.ROLE_ID', '=', 'rp.ROLE_ID')
->join('SITE_ADMIN_PERMISSIONS AS p', 'rp.PERMISSION_ID', '=', 'p.ID')
->where('ur.USER_ID', $admin->A_IDX)
->pluck('p.CODE')
->toArray();
return $permissionCodes;
}
public static function hasPermission(string $userToken, string $code): bool
{
$permissions = self::getPermissionsByToken($userToken);
2025-07-17 10:05:47 +09:00
return in_array($code, $permissions);
}
}