MovableType6で、ロールの権限をカスタマイズする

MovableTypeを使用して、次のような運用フローを実現したいとの要望がありました。

Aさん・Bさんはライターとして、記事の作成・編集が可能ですが、公開はCさんの承認で行います。
ここで問題になったのが、MovableTypeの「ライター」というロールです。

デフォルト設定の「ライター」は他のユーザーが作成した記事を編集することができません。
つまりBさんは、Aさんが作成した記事が編集できないということになります。
そこで「ロールの編集」を見に行くと、「すべての記事の編集」という権限がありました。

ところがこの「すべての記事の編集」という権限が曲者で、これを付与するとすべての記事の編集だけでなく、公開までができてしまいます。
これでは、BさんはAさんの作成した記事が編集できますが、公開はCさんの承認のもと行うというフローが守れなくなってしまいます。

そこで「ロールの編集」で設定できる権限を追加する、簡単なプラグインを書いてみます。
次のコードを「/mt/plugins/EditAllEntriesRole/config.yaml」としてサーバーにアップします。

「permitted_action」に与えたい権限を、「label」に表示に使用する権限名を書くと、「ロールの編集」から選択することができるようになります。

これで、「Aさん・Bさんはすべての記事を編集できるが、公開はできない」という状態を作ることができました。

「permitted_action」に設定できる値などは、次のページにある参考資料にまとまっているようです。
https://github.com/movabletype/Documentation/wiki/Japanese-plugin-dev-5-4

個人的にはMovableType好きなので、今後も盛り上がっていってほしいものです。

●この記事を書いた人