Sitecore Content Hub のコア機能の一つにエンティティプリントの機能があります。これを使用するとエンティティの内容を元にあらかじめレイアウトを指定したPDFを生成できます。本気のはアノテーション(注釈)のPDFを作成するためにも利用されています。
例えば、標準機能であるアノテーション付きのアセットのPDFをダウンロードできるようにするには、 M.Asset に EntityPrint 権限を与えればOKです。
今回は、カスタムのプリントテンプレートを準備してPDFを生成できるようにするために一般のユーザーに必要な権限の覚書になります。
エンティティプリントの機能を使用することで、例えばM.PCM.ProductエンティティのPDFを作成できるようにカスタムのプリントテンプレートを定義して利用できます。このとき、Generate PDFボタンをProductの詳細ページに追加して、権限としては M.PCM.ProductにEntityPrint権限を付与すればOKだと思っていました。
実際 この権限により Generate PDF ボタンが表示されるようになります。ところが、実際にGenerate PDFボタンを押すと PDF creation failed というエラーメッセージが表示されます。より詳しく調べると、次のエンティティ定義に対してもRead権限が必要なようです。
- M.Action
- Print.EntityGenerationTemplate
上記権限を追加で付与するとPDFの生成に成功するようになりました。ちなみに、Generate PDFボタンで生成されるPDFの生成は、ログインしているユーザーの権限が適用されるので、PDF生成時に参照権限のないタクソノミーを参照するコードが記載されているとエンティティを取得できないので注意が必要です。
ちなみに、Content Hub には、より高度なプリントソリューションとしてWeb to Print があります。こちらは現時点では有償のアドオンという扱いです。
さんのコメント: さんのコメント: