こんにちは!アクレットの東です。
この記事ではワークフロー導入にあたって、スケジュール機能とユーザー権限の設定について詳しく書いていこうと思います!
前回の記事はコチラ↓
スケジューラー機能付きのワークフローを導入してみた(Drupal8) 〜前編〜

 

スケジュールの設定

/admin/config/workflow/scheduled-transitionsのページで、スケジューラー機能の設定ができます。
Enabled types から、適用したいものにチェックをいれます。他にもcronの設定やエンティティの設定なども行えますが、今回は特に必要ありませんでした。

workflow_5

ユーザー権限の設定

今回は投稿者、承認者とユーザーを分けることにします。
/admin/people/roles のページで、役割の追加ボタンをクリックして投稿者と承認者の役割を作成します。

workflow_6

Content Moderationの権限設定

ユーザー権限ごとにどの状態に変更することができるかを切り分けることができます。
先程設定した推移(TRANSITIONS)の単位で権限を設定することができます。
今回であれば、
投稿者は「Draftに変更する権限」「waiting for checkに変更する権限]、
承認者は投稿者と同じ権限に加えて、CheckedやPublishに変更する権限が必要です。また、念の為Content Moderationに関するすべての権限を付与します。

workflow_7

Scheduled Transitionsの権限設定

スケジュール設定を行うことができるユーザーを切り分けることができます。
今回は投稿者にはチェックを入れず、承認者にはチェックを入れます。
これによってスケジュール設定は承認者しか行えないことになります。

workflow_8

完成!

これで一通り設定が完了しました。
実際の動きを確認してみましょう。

投稿者の場合

記事の作成時の部分からチェックしてみましょう。
投稿者権限でコンテンツの編集ページを見てみます。
Draft→waiting for checkに変更できますが、Waiting for check →Publish等のステータスには変更することができません。

↓現在のステータスがDraftの場合
workflow_9

 

↓現在のステータスがWaiting for checkの場合
workflow_10

承認者の場合

記事の確認について
/admin/content/moderated から、Moderationの設定がされている記事一覧が見れます。Moderation stateのフィールドが追加されているので、その記事が今どの状態がパッと見でわかるようになりました!

workflow_11

 

コンテンツ編集ページを確認してみると、waiting for check からchecked に変更することができます。
先程投稿者権限では変更できませんでしたが、承認者権限では変更することができるようになりました。

workflow_12

記事のステータス変更

コンテンツページのタブに、Scheduled Transitionsというタブが追加されており、そこからスケジュール設定ができるようになっています。Add Scheduled transitionのボタンをクリックします。

workflow_13

 

スケジュール設定のポップアップが表示されますので、Excute transitionを「Publish」、ondateを公開したい日付にします。

workflow_14

これでこの記事は2021年1月8日の18:00に公開されるようになりました。

※実際はCronが動いたタイミングでステータスが変わりますので、Cronは適宜設定することをお忘れなく!

 

また、既にスケジュール設定されている記事の一覧は、/admin/content/scheduled-transitionsで確認することができます。

workflow_15

最後に

いかがでしたでしょうか。ワークフローは様々な案件で取り扱うので、参考になれば幸いです。

これからもどんどん機能追加していくつもりですので、その際はまた当ブログでご紹介していきたいと思います。

最後まで読んでいただきありがとうございました。