私のクライアントは、各コンテンツタイプのリンクを含むメニューを必要としています。
これを実現するために、バンドル用のフィルターを持つビューページを作成します。このようにして、すべてのコンテンツタイプに同じビューページを使用できます。 / admin/contentのような同じビューページを使用することも試みましたが、そのマシン名をフィルターするためにコンテンツタイプを渡す必要があります。
私がやろうとしていることは、コンテンツタイプごとにメニューアイテムを作成し、コンテンツタイプごとの権限を使用してアイテム(リンク)ごとに権限を設定することです。
例:メニューにアイテム記事があります。このアイテムは、記事を作成する権利がある場合にのみ表示されます。ここをクリックすると、すべてのコンテンツArticles(/ admin/contentなど)が表示されます。
コンテンツタイプを作成する権限を持つユーザーまたはロールがアイテムを表示することを前提としています。
ビューへのアクセス権を持つメニュー項目を作成するにはどうすればよいですか?
ルートではなく、表示ページの権限を使用しているため、私の問題があります。
.links.menu.yml
content_types.admin_1:
title: 'Articles'
parent: content_types.admin_menu
route_name: content_types.admin_1
route_parameters:
type: article
description: 'Content articles'
content_types.admin_2:
title: 'News'
parent: content_types.admin_menu
route_name: content_types.admin_2
route_parameters:
type: nouvelle
description: 'Content news'
.routing.yml
content_types.admin_1:
path: '/admin/view-test'
defaults:
_controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
_title: 'Articles'
requirements:
_permission: 'create article content'
content_types.admin_2:
path: '/admin/view-test'
defaults:
_controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
_title: 'News'
requirements:
_permission: 'create nouvelle content'
ご覧のとおり、_permission: 'create article content'を追加しましたが、何もしませんでした。
admin/structure/views/view/view_test?destination =/en/admin/structure/views
私が使用しているユーザーのロールには、記事やニュースを作成する権限がありません。
更新:
.permissions.ymlを作成して_permission: 'access menu item 1'を使用しましたが、この権限がそのロールのチケットではない場合でもアイテムに表示されます。
.permissions.yml
'access menu item 1':
title: Access Menu MTL 1
description: Allow users to access menu MTL
なにか提案を?
更新:2019年1月
問題は、異なるアクセス許可を持つ各コンテンツタイプに対して同じビューページ(/ admin/content)を使用しようとすることです。各リンクに権限を設定するのではなく、アクセスしようとしているビュー(またはアイテム)に権限を設定します。
私がしたこと:
動的メニューを使ってみました。しかし、それは私の目的には機能しません。なぜなら、各リンクメニューは、役割ごとに異なるアクセス権を持つ可能性があるからです。
その後、個々の権限を管理できるように、コンテンツのタイプごとにビューを作成する必要があることに気付きました。
したがって、CTを作成するたびにビューを作成する必要があるため、動的に行うのは意味がありません。
私がやった方法:
タイプごとにフィルターの内容を含む各CTのビューを作成します。また、同じCTの各ビューに権限を設定しました。そしてカスタムルート。
CTごとに1つのアイテムメニューを作成し、ビューと同じルートとして設定します。
.links.menu.yml
vdm.tc_sujet:
title: 'Sujets'
parent: system.admin_content
route_name: vdm.tc_sujets
description: "Content type subject."
weight: -1
.routing.yml
vdm.tc_sujets:
path: '/admin/content/sujet'
defaults:
_controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
_title: 'Sujets'
注:動的メニューは、ノードへのリンク項目の追加に最適です。