2019-09-04

Craft CMS で自身でアップしたアセットのみを利用できるようにする Asset Ownership プラグイン #craftcms

先日のエントリの続き。

鈴木さんから他の人のアップしたアセットが使えないようなことは出来る?という話があったので調べてみたところ Asset Ownership プラグインが使えそうだった。

Asset Ownership プラグイン

Asset Ownership
https://plugins.craftcms.com/a...

プラグインをインストールしたら、フィールドをこんな感じで作成する。

Fieldname: Uploaded By
Handle: uploadedBy
Field Type: Users
Sources: All [x]
Limit: 1

フィールド名、ハンドルは多分なんでも大丈夫そう。


フィールドの種類、ソース、リミットは合わせておいて設定する。

アセットにフィールドを設定

フィールドを作成したら、制限をかけるアセットの全てにこのフィールドを設置する。

ここが若干手間ではあるけど、アセットごとに誰がアップしたのか?の情報をもたせるという感じになる。

プラグインの設定

フィールドを設置したらプラグイン設定で、今回作成したフィールドを使うように設定する。

ここまで設定するとこんな感じで自分がアップした画像以外がアセットで見えなくなる

このユーザでアップするとこんな感じ。

管理者アカウントはこれまでと特に変わらず見れる。

他の人のアセットを操作してもよいユーザーグループがある場合はこんな感じで権限をふってしまえば管理者と同じ挙動が出来る。



基本的な動作としてはこれで問題なさそう。

ただ、あくまでユーザ単位になるので、これをユーザーグループ単位とかになるとこのプラグインだけでは難しそう。

あとは途中で導入するとこんな感じで、エントリの編集権限はあってもアセットに情報がはいっていないので、権限によっては見えなくなる

動作としてはこれが正しい気はするからまぁ仕方ない。
要件をみたせるならこれはこれでありかもしれないなー。

どういう状況でこういった制御をかけないといけないのか?という話になるので、まずはそこをちゃんと聞くことだろうな。

使われている画像を消されたら困るとかであれば、とりあえず画像を消す権限を外すだけでも十分な場合もあるかもしれないし。。。