Files
lotteryLaravel/app/Support/AdminAuthProfile.php

40 lines
967 B
PHP

<?php
namespace App\Support;
use App\Models\AdminUser;
final class AdminAuthProfile
{
/**
* @return array{
* id: int,
* username: string,
* nickname: string,
* email: ?string,
* permissions: list<string>,
* navigation: list<array{
* segment: string,
* label: string,
* href: string,
* activeMatchPrefix?: string,
* requiredAny?: list<string>
* }>
* }
*/
public static function fromAdmin(AdminUser $admin): array
{
$fresh = $admin->fresh();
$permissionSlugs = $fresh->adminPermissionSlugs();
return [
'id' => $fresh->id,
'username' => $fresh->username,
'nickname' => $fresh->name,
'email' => $fresh->email,
'permissions' => $permissionSlugs,
'navigation' => AdminAuthorizationRegistry::visibleNavigationItems($permissionSlugs),
];
}
}