2016-10-08 17 views
0

私はSyliusと協力しており、製品の編集のみが許可されているユーザーロールを作成しようとしています。他の権限が適用されない Sylius役割の権限 - 在庫管理を削除

  • を表示する製品
  • リスト項目
  • 編集製品、および親の許可カテゴリはチェックされません:私は、次の権限を与えてくれました。私は、これらの制限的なアクセス許可は、そのユーザーのロールに管理の '製品'メニューへのアクセスのみを与えると思うだろうが、それはまた、 '在庫レベル'メニューを追加するようだ。このユーザーの役割は、在庫レベルを表示または編集できないようにする必要があります。

    これはSylius権限のバグですか?その権限を十分に拡張して、そのきめ細かな制御ができるようにしてください。あるいは、在庫レベルは製品の不可欠な部分であり、管理者が編集した製品が実際に利用可能であることを確実にするために常に製品関連のアクセス許可に含まれていると考えられますか?

    私はインベントリのアクセス許可を削除するソリューションを受け入れるでしょう、私はこれを行うために私の手を汚くしていると思います。私はまた、これの背後にある考え方、あるいはこれがシリウスのバグかどうかについての洞察を受け入れます。ありがとう!

答えて

1

コード内に私の答えが見つかりました。

これは、管理者のメニューバーにすべてのアイテムを配置しているファイルで、そのユーザに表示される権限を確認した後に表示されるファイルです。ファイルは次のとおりです:src/Sylius/Bundle/WebBundle/Menu/BackendMenuBuilder.phpこのようになり、ここでのコードの塊があります:

if ($this->rbacAuthorizationChecker->isGranted('sylius.product.index')) { // THIS IS IT! 
     $child->addChild('products', [ 
      'route' => 'sylius_backend_product_index', 
      'labelAttributes' => ['icon' => 'glyphicon glyphicon-th-list'], 
     ])->setLabel($this->translate(sprintf('sylius.backend.menu.%s.products', $section))); 
     $child->addChild('inventory', [ 
      'route' => 'sylius_backend_inventory_index', 
      'labelAttributes' => ['icon' => 'glyphicon glyphicon-tasks'], 
     ])->setLabel($this->translate(sprintf('sylius.backend.menu.%s.stockables', $section))); 
    } 

これは、同じ権限に基づいて、製品のメニュー項目を追加し、同時に在庫メニュー項目を追加します。「sylius.product.index '私はこれがまだ自分の許可に分離されていないと思うか、あるいはMOSTの場合、製品を管理できるユーザーも在庫を管理できるはずだと考えられます。私は私の問題を解決するための新しい許可を作成するつもりです。

関連する問題