concrete5にて編集者がページ編集し、管理者が承認するワークフローを試してみました。
※多々間違いがあるかもしれません……
編集者グループの追加
管理画面 → メンバー → ユーザーグループ → グループを追加
編集者ユーザの追加
管理画面 → メンバー → ユーザー検索 → ユーザーを追加
- 先ほど作成した「編集者」グループにチェック
編集者権限の追加
管理画面の表示権限追加
管理画面 → サイトマップ → フルサイトマップ
- 「サイトマップにシステムページを含める」にチェック
- サイトマップの「管理画面」をクリック
- メニューの「権限」をクリック
- 「表示」権限をクリック
- 新規(含む) → 選択 → グループ → 編集者 → 保存 → 保存 → 変更を保存
サイトマップのページ表示権限追加
- サイトマップの「ホーム」をクリック
- メニューの「権限」をクリック
- 「サイトマップでページを表示」権限をクリック
- 新規(含む) → 選択 → グループ → 編集者 → 保存 → 保存 → 変更を保存
コンテンツの編集権限追加
- サイトマップの「ホーム」をクリック
- メニューの「権限」をクリック
- 「コンテンツを編集」権限をクリック
- 新規(含む) → 選択 → グループ → 編集者 → 保存 → 保存 → 変更を保存
サイトマップのアクセス権限追加
管理画面 → システムと設定 → 権限とアクセス → タスク権限
- 「サイトマップへのアクセス」権限をクリック
- 新規(含む) → 選択 → グループ → 編集者 → 保存 → 保存 → 保存
ワークフロー作成
管理画面 → ワークフロー → ワークフロー一覧 → ワークフローを追加
ワークフロー設定
管理画面 → サイトマップ → フルサイトマップ
- サイトマップの「ホーム」をクリック
- メニューの「権限」をクリック
- 「変更を承認」権限をクリック
- 「アクセス」タブ → 新規(含む) → 選択 → グループ → 編集者 → 保存
- 「ワークフロー」タブ → 先ほど作成したワークフローにチェック → 保存 → 変更を保存
以上でワークフローの設定は完了
ワークフローを試してみる
- 編集者でログイン
- 任意のページを編集、保存
- 編集モードを終了
- 「ワークフローに送信」をクリック
ワークフローの「エントリーの通知」で管理者グループを設定していたので、承認要求メールが管理者に届きます。
ワークフローの「承認か拒否」で管理者グループを設定していたので、承認もしくは拒否するために管理者でログインし直します。
- 管理者でログイン
- 管理画面 → ワークフロー → 確認待ち
- 承認要求を「キャンセル」または「ページを承認」にて処理
「キャンセル」すればワークフローの「拒否通知」に設定されてるユーザに通知
「ページを承認」すればワークフローの「承認を通知」に設定されてるユーザに通知
はまりポイント
最初はグループセットというものを使ってワークフローに設定していましたが、ある条件にて下記エラーが出ます。
PHP Fatal error: Class 'Concrete\Core\Permission\Access\Entity\UserInfo' not found in /var/www/html/concrete/src/Permission/Access/Entity/GroupSetEntity.php on line 57
どうやら管理者のadminユーザを管理者グループに追加し、グループセットに管理者グループを設定、そのグループセットをワークフローに設定するとエラーになるようです。
これでだいぶはまった……