First Commit (API Project)
This commit is contained in:
38
app/Services/AdminPermissionService.php
Normal file
38
app/Services/AdminPermissionService.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Models\User;
|
||||
use App\Models\SiteAdmin;
|
||||
|
||||
class AdminPermissionService
|
||||
{
|
||||
public static function getPermissionsByToken(string $userToken): array
|
||||
{
|
||||
$user = User::where('USER_TOKEN', $userToken)
|
||||
->first();
|
||||
|
||||
if (!$user) return [];
|
||||
|
||||
$admin = SiteAdmin::where('UNO', $user->USER_NO)
|
||||
->first();
|
||||
|
||||
if (!$admin) return [];
|
||||
|
||||
$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);
|
||||
return in_array($code, $permissions);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user