ブログのワークフローと権限設定 – concrete5 Ver.8.1.0

Share on Facebook
LINEで送る
Pocket

友人に、concrete5 Ver.8.1.0でのブログのワークフローがうまく動かない!と言われたので、「んなバグ知らんなー」と思い、設定してみたら見事にハマったので、備忘録代わりに書いときます。

権限設定まわりはいつまで経ってもハマるなぁ…

concrete5でのブログの権限設定

ブログでワークフローを使いたい、となると、通常下記の様な運用を実現したいという事になると思います。

  1. 編集者グループのユーザが記事を作成・編集
  2. 管理者グループの人間が記事を確認後、承認・却下のアクションを実行
  3. 記事が公開・差し戻される

この場合、記事一覧ページが親ページとなり、各記事のページがその下にぶら下がっていく構造になると思います。

各記事は編集者が編集できないといけませんが、ブログトップは管理者しか編集できない権限を設定しないといけません。

しかし、concrete5のデフォルトでは、子ページは親ページの権限を継承する事になるので、そのままだと親ページであるblogページに対して編集者による編集権限を与えないといけません。

こんな時は、子ページの権限設定を親ページからの継承ではなく、ページタイプのデフォルト権限を使用します。

そうすると、「親ページのblogページは管理者しか編集できないが、その子ページである各記事は編集者権限のユーザも編集できる」という権限設定が可能になります。

さあ、そんなconcrete5の最も素晴らしく便利で難解なページの権限設定についておさらいしましょう。

ページの権限設定

ページの権限設定

concrete5のページの権限設定は3パターンあります。

上位ページからの継承ページタイプのデフォルト、そのページだけの手動設定です。

これは、そのページに対する権限設定です。
子ページが親ページの権限設定を継承する設定の場合は、ここで設定した権限設定が子ページにも適用されます。

親ページから継承

デフォルトの権限設定です。
対象のページの権限設定は親ページから継承されます。

手動設定

親ページから権限を継承せず、個別の権限設定を設定します。

ページタイプのデフォルト権限

親ページから継承するのではなく、ページタイプのデフォルトの権限設定を利用します。

ページタイプの権限とは?

実はconcrete5のページの権限設定は、サイトマップ上のページに対する権限設定とは別に、ページタイプ毎に設定する権限設定があります。

通常はサイトマップ上の権限設定が利用されますが、「ページタイプのデフォルト権限」を選択した時だけここで設定する権限設定が適用されます。

これは、管理画面の
ページとテーマ > ページタイプ
で設定できます。

この画面の「権限」っていうメニューです

子ページの権限設定

ページの権限設定

ページの権限設定画面にある、「サブページ権限」が、そのページの配下に作成される子ページに対しての権限設定です。

今回の場合は、blogという記事一覧ページの下に作成される各記事ページの権限設定をどうするか?という設定になります。

子ページの権限設定

親ページから継承

作成される子ページは親ページから権限設定を継承します。
今回のケースでは、Blogページの権限設定を継承しちゃうんで、これにしちゃダメです。

ページタイプのデフォルト権限

ページタイプの設定画面で設定される権限を利用します。

今回のケースでは、Blogページは編集者グループにいじられたく無いのですが、各記事は編集者グループのユーザが自由に編集できないと困るので、これを設定します。

ちゃんとページタイプの権限設定画面で、編集者グループに編集公開の権限を付与しておきましょう。

ブログ記事ページタイプの権限設定

さあ、ワークフローを設定しよう!

さあ、やっとこさワークフローの設定です。

ワークフローは
システムと設定 > 権限とアクセス
メニューから行います。

管理画面 権限とアクセス メニュー

ワークフローの作成

ワークフローを作る時には、右上の「ワークフローを追加」ボタンをクリックします。

標準では、ワークフローの種類はシンプルなデフォルトのワークフローひとつしか選べませんが、カスタマイズすれば多段階認証とかの複雑なワークフローも設定可能です。

承認・拒否を誰が出来るか?
誰に対して通知するか?
などの設定がありますが、下記の様な感じに設定できればOKです。
(Contributorsが編集者グループです。)

ワークフローの設定

ワークフローは作成しただけは動作しません
作ったワークフローを、権限に対して設定する必要があります。

今回は、編集者グループが記事を作成したら、管理者グループに通知が行って、承認・却下の処理をして欲しいので、ブログ記事のページタイプ権限の「変更を承認」という権限に対してワークフローを設定します。

変更と承認権限

変更を承認」をクリックすると

ワークフローを権限に適用

ウィンドウが開くので、「ワークフロー」タブをクリックします。

そうすると、どのワークフローを割り当てるのか?が設定できる画面になるので、先ほど作ったワークフローを適用させましょう。

お疲れ様でした!
これでワークフローと権限の設定は終わりです!

ワークフローが動かない…

あれれ?…

編集者グループのユーザでブログを書いても管理者に通知されないし、承認待ちのリストに表示されない…

権限設定に間違いは無いし、ちゃんとワークフローも割り当てられています。なぜでしょう…

「下書き」フォルダの権限設定

通常、ブログ記事を作成する時は、メニューバーの新規ページ作成から作成します。

また、ブログ記事はコンポーザーで開かれ、自動的に保存されていきます。
この時、下書きのブログ記事は実はシステムページの「下書き」というページの下に作成されるんですね。

この下書きページの子ページに対する権限設定をしていなかったのが、ワークフローが動かない原因でした。ううう….

下書きフォルダの権限設定は、サイトマップから行います。

管理画面サイトマップ

このページの「サイトマップにシステムページを含める」にチェックを入れると、管理画面などのシステムページがサイトマップに表示されて各種設定ができる様になります。

システムページの表示

ここで表示される「下書き」ページをクリックして、下書きフォルダの権限を設定します。


この「下書き」フォルダのサブページ権限の設定を、「ページタイプのデフォルト権限設定を継承する」に設定します。

これでブログ記事ページタイプで設定した権限設定が下書きにも適用され、編集者権限のユーザが記事を作成してもワークフローに乗る様になります。

ワークフローが動いた〜

確認待ちリスト

やっと動きました!

編集者グループのユーザで記事を作成してみましょう。
通常「ページを公開」となっているボタンが、「ワークフローに送信」に変わっているハズです。

コンポーザー画面

ココです

ちなみに、このボタンの右側、時計のアイコンをクリックすると、予約投稿のウィンドウが開いて、日時指定をした予約投稿ができます。

予約投稿画面

お疲れ様でした!

いやー、設定するのもこのブログ書くのも疲れましたわw

実際には、これ以外にも子ページとして追加できるページタイプをブログ記事に限定したり、ブログ記事でページを作成する場合は必ずBlogページの下にページを作成するなどの設定を行いました。

今回の権限設定のポイント

  • 親ページの権限を継承させたくない場合は、サブページ権限設定を「ページタイプのデフォルト権限」を使う
  • コンポーザーを使うと下書きフォルダに保存されるので、下書きフォルダの権限設定も忘れない

この様に、concrete5では細か過ぎとも言える権限設定が可能なため、時としてその権限設定が非常に煩雑です。

しかし、これは作成段階での話であり、実際に運用に乗ると、この権限設定による運用負荷の削減効果は絶大です。

Webサイトは公開して運用してからが大事です。
サイトの運用が面倒にならない様に、面倒くさがらずにキチンと権限設定を行い、運営しやすい素敵なWebサイトを構築しましょう。


concrete5に関するお問い合わせ

Share on Facebook
LINEで送る
Pocket