37 lines
888 B
PHP
37 lines
888 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\AdminPermission;
|
|
use Illuminate\Http\Request;
|
|
|
|
class AdminPermissionController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$permissions = (new AdminPermission())->toTree(AdminPermission::endPoint()->get());
|
|
|
|
return $this->json($this->formatPermissionsTreeToArray($permissions));
|
|
}
|
|
|
|
/**
|
|
* 格式化树
|
|
*
|
|
* @param array $permissions
|
|
* @return void
|
|
*/
|
|
protected function formatPermissionsTreeToArray(array $permissions)
|
|
{
|
|
$res = [];
|
|
foreach ($permissions as $permission) {
|
|
$res[] = [
|
|
'id' => $permission->id,
|
|
'label' => $permission->name,
|
|
'children' => $this->formatPermissionsTreeToArray($permission->children ?? []),
|
|
];
|
|
}
|
|
|
|
return $res;
|
|
}
|
|
}
|