artox-lab / clarc-bundle
在Clean Architecture中构建Symfony项目
v5.2.17
2023-03-15 08:57 UTC
Requires
- php: >=7.4 || ^8.0
- ext-json: *
- doctrine/annotations: ^1.12
- google/protobuf: ^3.3
- league/fractal: ^0.20
- liip/monitor-bundle: ^2.16
- pagerfanta/pagerfanta: ^3.0
- symfony-bundles/json-request-bundle: ^4.0
- symfony/framework-bundle: ^5.2
- symfony/messenger: ^5.2
- symfony/translation: ^5.2
- symfony/validator: ^5.2
Requires (Dev)
- haydenpierce/class-finder: ^0.4.0
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-master
- symfony/maker-bundle: ^1.29
- 5.2.x-dev
- v5.2.17
- v5.2.16
- v5.2.15
- v5.2.14
- v5.2.13
- v5.2.12
- v5.2.12-beta.4
- v5.2.12-beta.3
- v5.2.12-beta.2
- v5.2.12-beta.1
- v5.2.11
- 5.2.10
- v5.2.9
- v5.2.8
- v5.2.7
- v5.2.6
- v5.2.5
- v5.2.4
- v5.2.3
- v5.2.2
- v5.2.1
- v5.1.1
- v5.1.0
- v5.0.3
- v5.0.2
- v5.0.1
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- 1.x-dev
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v0.3.3
- v0.3.2
- 0.3.1
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- 0.2.2
- 0.2.1
- v0.1.12
- 0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1
- dev-RND-500
- dev-fix/resourse_keys
This package is auto-updated.
Last update: 2024-08-29 08:54:36 UTC
README
使用Symfony Flex的应用程序
打开命令行,进入您的项目目录并执行
$ composer require artox-lab/clarc-bundle
不使用Symfony Flex的应用程序
步骤 1: 下载Bundle
打开命令行,进入您的项目目录并执行以下命令以下载此Bundle的最新稳定版本
$ composer require artox-lab/clarc-bundle
此命令需要您已全局安装Composer,如Composer文档中的安装章节所述。
步骤 2: 启用Bundle
然后,通过将其添加到项目config/bundles.php
文件中注册的Bundle列表中启用Bundle
// config/bundles.php return [ // ... ArtoxLab\Bundle\ClarcBundle\ArtoxLabClarcBundle::class => ['all' => true], ];
步骤 3: 配置
配置Bundle
# config/packages/artox_lab_clarc.yaml artox_lab_clarc: api: serializer: class: \ArtoxLab\Bundle\ClarcBundle\Core\Interfaces\UI\API\Transformers\Serializers\NullObjectArraySerializer security: rbac: permissions: ROLE_MAINTAINER: - show
安全
如何设置获取认证用户权限
API端点
- 将以下内容添加到您的项目路由文件
config/routes.yaml
artox_lab_clarc_bundle_user_permissions: path: /v1/user/permissions controller: ArtoxLab\Bundle\ClarcBundle\Core\Interfaces\UI\API\Controllers\PermissionController::permissions methods: GET
- 在
config/packages/security.yaml
中设置防火墙和访问控制
security: firewalls: users: pattern: ^/v1 ... access_control: - { path: ^/v1/, roles: IS_AUTHENTICATED_FULLY }
注意:如果您有多个认证器 - 为每个认证器进行设置
如何使用RBAC
- 在配置
config/packages/artox_lab_clarc.yaml
中设置角色和权限 - 在您的用例/控制器中要求
ArtoxLab\Bundle\ClarcBundle\Core\Entity\Security\AuthorizationChecker
- 检查用户权限
$this->authorizationChecker->isGranted('permission_name')
导航
- 设置配置
# config/packages/artox_lab_clarc.yaml artox_lab_clarc: navigation: left_menu: show_orphaned_root: false items: - icon: portfolio title: Управление компаниями children: - icon: something link: /companies title: Компании permissions: company.list - link: /companies/add title: Добавить компанию permissions: [company.create]
- 添加路由
# config/routes.yaml artox_lab_admin_user_navigations: path: /user/navigations controller: ArtoxLab\Bundle\ClarcBundle\Core\Interfaces\UI\API\Controllers\NavigationController::userNavigation methods: GET
- 保护路由
# config/packages/security.yaml security: firewalls: main: pattern: ^/user ... access_control: - { path: ^/user, roles: IS_AUTHENTICATED_FULLY}
- 使用认证调用API
GET /user/navigations