定义资源后我们可以获取权限对象将一些动态权限进行注册扩展。
在应用入口
中获取注册资源名为 admin 的权限类,建议在 register
方法中获取:
public function register(Bootstrap $app): void
{
$menu = $app->getPermission()->get("admin");
}
获取到权限对象后可添加权限租和权限,权限组只作为唯一分组标识,不作为权限判断。
// 添加权限组
$group = $app->group("test.testGroup");
// 注册权限
$group->add("test.example");
权限添加只需要添加权限名,如 test.example
该权限在获取权限时会自动调用语言包中 test.example.name
的内容作为权限描述,如下格式:
菜单名需要与权限名对应后权限才能控制菜单的显示,如下:
// 注册菜单
$menuGroup->item(name: "test.example", route: "test/example/list", sort: 0);
// 注册权限
$permissionGroup->add("test.example");
每个前端资源有一个唯一 资源名
,该资源名需要与路由名
一致则可控制前端菜单。
::: code-group
<?php
declare(strict_types=1);
namespace App\Example\Admin;
use Dux\Resources\Action\Resources;
use Dux\Resources\Attribute\Resource;
#[Resource(app: 'admin', route: '/test/example', name: 'test.example')] class Page extends Resources
{
...
app.addResources([
{
name: 'test.example', list: 'test/example',
listComponent: lazyComponent(() => import('../admin/test/list')),
}
]);
:::