arobases / sylius-rights-management-plugin
此插件允许您管理管理员用户的权限和角色
1.3.0
2023-02-16 09:10 UTC
Requires
- php: ^7.4 || ^8.0
- sylius/sylius: v1.10.14
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0.0
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- friendsofsymfony/oauth-server-bundle: ^1.6 || >2.0.0-alpha.0 ^2.0@dev
- phpspec/phpspec: ^7.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: 0.12.99
- phpstan/phpstan-doctrine: 0.12.33
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: 0.12.12
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^4.0
- symfony/browser-kit: ^4.4 || ^5.2
- symfony/debug-bundle: ^4.4 || ^5.2
- symfony/dotenv: ^4.4 || ^5.2
- symfony/intl: ^4.4 || ^5.2
- symfony/web-profiler-bundle: ^4.4 || ^5.2
- vimeo/psalm: 4.7.1
- dev-main
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/composer/vimeo/psalm-5.8.0
- dev-dependabot/composer/phpstan/phpstan-0.12.100
- dev-dependabot/composer/phpstan/phpstan-doctrine-0.12.44
- dev-dependabot/composer/phpstan/phpstan-webmozart-assert-0.12.16
This package is auto-updated.
Last update: 2024-09-10 14:59:46 UTC
README
此插件允许您管理管理员用户的权限和角色
安装
步骤 1:下载插件
- 使用
composer require arobases/sylius-rights-management-plugin
安装插件
步骤 2:启用插件
- 在您的
bundles.php
中注册捆绑包
# config/bundles.php <?php return [ ... Arobases\SyliusRightsManagementPlugin\ArobasesSyliusRightsManagementPlugin::class => ['all' => true], ... ];
步骤 3:导入配置
创建文件 config/packages/arobases_sylius_rights_management_plugin.yaml
,并包含以下内容
imports:
- { resource: "@ArobasesSyliusRightsManagementPlugin/Resources/config/config.yaml" }
步骤 4:导入路由
创建文件 config/routes/arobases_sylius_rights_management_plugin.yaml
,并包含以下内容
arobases_sylius_rights_management_plugin_admin:
resource: "@ArobasesSyliusRightsManagementPlugin/Resources/config/admin_routing.yml"
prefix: /admin
步骤 5:使用 AdminUserTrait 并实现 AdminUserInterface
//src/Entity/AdminUser.php <?php declare(strict_types=1); namespace App\Entity\User; use Arobases\SyliusRightsManagementPlugin\Entity\AdminUserInterface; use Doctrine\ORM\Mapping as ORM; use Arobases\SyliusRightsManagementPlugin\Entity\AdminUserTrait; use Sylius\Component\Core\Model\AdminUser as BaseAdminUser; /** * @ORM\Entity * @ORM\Table(name="sylius_admin_user") */ class AdminUser extends BaseAdminUser implements AdminUserInterface { use AdminUserTrait; }
步骤 6:修改模板 SyliusAdminBundle/AdminUser/Form/_generalInfoExtended.html.twig
{# templates/bundles/SyliusAdminBundle/AdminUser/Form/_generalInfoExtended.html.twig #} ... <div class="ui segment"> <h4 class="ui dividing header">{{ 'arobases_sylius_rights_management_plugin.ui.choice_role'|trans }}</h4> {{ form_row(form.role) }} </div> ...
步骤 7:更新您的数据库
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate
步骤 8:安装资源
php bin/console asset:install
php bin/console cache:clear
步骤 9:定义您的默认角色(例如 "管理员")以及默认具有此角色的管理员账户的用户名
#.env ###> arobases/sylius-rights-management ### DEFAULT_ADMIN_USER=EDITME DEFAULT_ADMIN_ROLE_CODE=EDITME DEFAULT_ADMIN_ROLE_NAME=EDITME ###> arobases/sylius-rights-management ###
如果您不更改这些行,当您使用命令创建权限时,您将无法访问后台办公系统中的任何内容,因为您将没有权限。
步骤 10:使用命令行创建角色、权限组以及权限
php bin/console arobases:right:create-admin-right
屏幕截图
索引
编辑/创建角色
如果用户没有权限,将显示错误
用法
存在一个预配置的默认权限列表
#vendor/arobases/sylius-rights-management-plugin/src/Resources/config/right_management.yaml arobases_sylius_rights_management: groups: arobases_sylius_rights_management_plugin.group.taxon: #here it's the name of the group of the right rights: all: name: 'arobases_sylius_rights_management_plugin.rights.taxon' #here it's the name of the right routes: ['sylius_admin_taxon_*', 'sylius_admin_ajax_generate_taxon_slug'] arobases_sylius_rights_management_plugin.group.product: rights: product: name: 'arobases_sylius_rights_management_plugin.rights.product' routes: ['sylius_admin_product_*', 'sylius_admin_get_product_attributes_*', 'sylius_admin_get_attribute_types', 'sylius_admin_ajax_generate_product_slug', 'sylius_admin_ajax_taxon_*', 'sylius_admin_ajax_product_*' ] stock: name: 'arobases_sylius_rights_management_plugin.rights.inventory' routes: ['sylius_admin_inventory_*'] arobases_sylius_rights_management_plugin.group.order: rights: all: name: 'arobases_sylius_rights_management_plugin.rights.order' routes: ['sylius_admin_order_*', 'sylius_admin_payment_*', 'sylius_admin_shipment_*','sylius_invoicing_plugin_admin_invoice_*', 'sylius_refund_*', 'sylius_admin_ajax_render_province_*'] excludes: ['sylius_admin_payment_method_*'] arobases_sylius_rights_management_plugin.group.promotion: rights: all: name: 'arobases_sylius_rights_management_plugin.rights.promotion' routes: ['sylius_admin_promotion_*'] arobases_sylius_rights_management_plugin.group.user: rights: user: name: 'arobases_sylius_rights_management_plugin.rights.customer' routes: ['sylius_admin_customer_*', 'sylius_admin_impersonate_*'] excludes: ['sylius_admin_customer_group_*'] group: name: 'sylius.ui.customer_groups' routes: ['sylius_admin_customer_group_*',] arobases_sylius_rights_management_plugin.group.configuration: rights: channel: name: 'arobases_sylius_rights_management_plugin.rights.channel' routes: ['sylius_admin_channel_*'] country: name: 'arobases_sylius_rights_management_plugin.rights.country' routes: ['sylius_admin_country_*'] zone: name: 'arobases_sylius_rights_management_plugin.rights.zone' routes: ['sylius_admin_zone_*'] currency: name: 'arobases_sylius_rights_management_plugin.rights.currency' routes: ['sylius_admin_currency_*'] exchange_rate: name: 'arobases_sylius_rights_management_plugin.rights.exchange_rate' routes: ['sylius_admin_exchange_rate_*'] locale: name: 'arobases_sylius_rights_management_plugin.rights.locale' routes: ['sylius_admin_locale_*'] payment_method: name: 'arobases_sylius_rights_management_plugin.rights.payment_method' routes: ['sylius_admin_payment_method_*', 'sylius_admin_get_payment_gateways'] shipping_method: name: 'arobases_sylius_rights_management_plugin.rights.shipping_method' routes: ['sylius_admin_shipping_method_*', 'webgriffe_admin_shipping_table_rate_*'] shipping_category: name: 'arobases_sylius_rights_management_plugin.rights.shipping_category' routes: ['sylius_admin_shipping_category_*'] tax_category: name: 'arobases_sylius_rights_management_plugin.rights.tax_category' routes: ['sylius_admin_tax_category_*'] tax_rate: name: 'arobases_sylius_rights_management_plugin.rights.tax_rate' routes: ['sylius_admin_tax_rate_*'] arobases_sylius_rights_management_plugin.group.administration: rights: admin_user: name: 'arobases_sylius_rights_management_plugin.rights.admin_user' routes: ['sylius_admin_admin_user_*'] admin_role: name: 'arobases_sylius_rights_management_plugin.rights.admin_role' routes: ['arobases_sylius_rights_management_plugin_admin_role_*']
但是,您可以在您的文件 config/packages/arobases_sylius_rights_management_plugin.yaml 中修改或添加一些权限或权限组
#config/packages/arobases_sylius_rights_management_plugin.yaml imports: - { resource: "@ArobasesSyliusRightsManagementPlugin/Resources/config/resources.yaml" } arobases_sylius_rights_management: groups: arobases_sylius_rights_management_plugin.group.product: rights: #here you will update "arobases_sylius_rights_management_plugin.group.product" app.group.my_new_group: rights: all: name: 'app.rights.my_new_right' routes: ['app_my_custom_route_*'] #here you will create a new group and a new right