2019/9/19
Tag :
Craft CMS
Craft CMS で Protected Links をつかってアセットへのアクセス制限をかける #craftcms
で試したのの続きをやってみる。
Protected Links

Protected Links プラグインを使うとアクセス制限がかけられそう。
Protected Links
https://plugins.craftcms.com/p...
プラグインをインストールするとドキュメントにあるような制限がかけられる
intoeetive/protectedlinks: Protected Links plugin for Craft CMS 3.x
https://github.com/intoeetive/...
管理者でログインしていると特に制限は関係なく見れる。
コードサンプルとしてはこんな感じ。
{% set protectassetid = entry.assettest2.one().id %} <img src="{{ craft.protectedLinks.link({ assetId: protectassetid, requireLogin: true }) }}" >
これでログインしていないユーザには画像がリンク切れになって表示される。

特定のユーザーグループに表示を許可する場合はこんな感じで許可するユーザーグループのIDを設定しておく
{{ craft.protectedLinks.link({ assetId: protectassetid, memberGroups: [1] }) }}
あと、アセットのボリュームの設定もみるので、ユーザーグループの権限を付与しておく。

これで特定のユーザーグループに表示ができる
{{ craft.protectedLinks.link({ assetId: protectassetid, inline: true, memberGroups: [1] }) }}

設定で inline を指定すると
<a href="{{ craft.protectedLinks.link({ assetId: protectassetid, inline: true, memberGroups: [1] }) }}">リンク</a>
こんなかんじでブラウザ内で開ける。

このときに権限がないユーザがみるとこんなかんじでエラーが表示される

PDFとかももちろん問題ない

Redactor とかで使ってるコンテンツはどうなるのかといったところが気にはなるけど、、、それは難しいのかなー。