CMS:コレクションの権限について
10分
CMS(コンテンツ管理システム)では、コレクションの権限を設定して、コレクションのコンテンツを表示、追加、更新、または削除できるユーザーを指定することができます。CMS を編集する権限のあるサイト所有者と共同管理者は、コレクションの「権限・プライバシー」設定でこれらの権限を管理することができます。
コレクションの権限は、サイトからのコレクションコンテンツへのアクセスを制御し、サイトのデータを保護するのに役立ちます。たとえば、オンラインコミュニティを運営している場合なら、権限のあるメンバーのみがコレクションのコンテンツを表示または追加できるようにして、それ以外のユーザーはアクセスできないようにすることができます。
コレクションコンテンツへのライブサイトのアクセスを管理する
コレクションの権限によって、サイトの CMS コレクションのコンテンツにアクセスできるユーザーや、そのユーザーが実行できる内容(例:コンテンツの表示、アイテムの追加、既存のコンテンツの更新、コンテンツの削除など)が決まります。適切な権限を持つユーザーは、ユーザー入力要素やデータ API を使用して、ライブサイトのコンテンツを管理することができます。
共同管理者、アイテムの作成者、サイト会員、その他すべてのユーザーに対して、それぞれ異なる権限を選択することができます。「高度」の権限では、作成したカスタムの CMS の役割ごとに、特定の権限を設定することができます。これにより、ライブサイトのコレクションコンテンツを表示、追加、更新、または削除できる共同管理者などを、より細かく制御することができます。
重要:
管理者の役割を持つ共同管理者は、常にコレクションへの完全なアクセスを維持していることに注意してください。管理者は、ライブサイトと CMS から、コレクションのコンテンツを表示、追加、更新、削除など、すべてのアクションを実行できます。
Velo by Wix ユーザー:
Wix Data API を使用すると、コードを使用してコレクションに直接アクセスできるようになり、プリセットのコレクション権限や高度なコレクション権限よりも、より多くの機能を利用することができます。(英語)
閲覧専用のアクセスに「コンテンツを表示」の権限を使用する
「コンテンツを表示」の権限を使用すると、訪問者がライブサイトでコレクションのコンテンツを表示できるようになります。これは、特定のコンテンツを変更できないようにして、サイト上に公開したい場合に便利です。この権限では、コンテンツをすべての訪問者が表示できるようにするか、サイト会員のみが表示できるようにするかを選択することができます。これにより、コンテンツを保護したまま、必要なユーザーがコンテンツにアクセスできるようになります。
ただし、適用する権限によっては、ライブサイトに表示されていなくても、ユーザーがコレクションのコンテンツにアクセスできる場合があることに注意してください。たとえば、「このコンテンツを表示できるユーザー」で「すべての訪問者」を選択した場合は、データ API を使用して誰でもコレクションのコンテンツを表示することができます。

「コンテンツを表示」の権限では、どのユーザーにサイト上のコンテンツの表示を許可することができますか?
CMS にアクセスできる共同管理者の場合:
CMS にアクセスできる共同管理者の場合は、「コンテンツを表示」の権限の設定に関わらず、コレクションのコンテンツにアクセスすることができます。ライブサイトまたは CMS 自体から、コレクションのコンテンツを表示、追加、更新、または削除することができます。
「コンテンツを収集」権限を使用して新しいアイテムの追加を許可する
「コンテンツを収集」の権限を使用すると、訪問者がユーザー入力要素や API を使用して、コレクションに新しいアイテムを追加できるようになります。これは、レビュー、コメント、投稿など、ユーザーのコンテンツを収集するためのサイトに適しています。ただし、この権限では、訪問者が既存のアイテムやそのフィールド値を更新することはできません。ライブサイトから既存のアイテムやそのフィールド値を更新できるようにするには、「高度」の権限を使用してください。
コレクションに新しいコンテンツを追加できるのは、すべての訪問者かサイト会員のみかを選択することができます。また、追加されたコンテンツを表示できるユーザーを制御して、サイトのプライバシーやセキュリティを保つこともできます。
データセットの設定は、訪問者がページで実行できるアクションに影響しますが、実際にさまざまな役割でデータに対して実行できる内容を制限できるのは、コレクションの権限のみです。

「コンテンツを収集」の権限では、どのユーザーがコレクションにコンテンツを追加したり、追加されたコンテンツを表示できるようにすることができますか?
CMS にアクセスできる共同管理者の場合:
CMS にアクセスできる共同管理者は、「コンテンツを収集」の権限の設定に関わらず、コレクションのコンテンツにアクセスすることができます。ライブサイトまたは CMS 自体から、コレクションのコンテンツを表示、追加、更新、または削除することができます。
「高度」の権限を設定して更にアクセスを制御する
コレクションのコンテンツを表示、追加、更新、または削除できるユーザーを更に細かく制御したい場合は、「高度」の権限を設定します。これにより、共同管理者、アイテムの作成者、サイト会員、その他すべてのユーザーなどの役割ごとに、実行できる内容をカスタマイズすることができます。共同管理者向けにカスタムの CMS の役割を作成した場合は、役割ごとに特定の権限を設定することができます。
たとえば、管理者のみがコンテンツを削除できるようにし、アイテムの作成者は自身が作成したコレクションアイテムのみを更新できるようにすることができます。このように、「高度」の権限では、サイトでの必要性やセキュリティ要件に合わせて、コレクションコンテンツへのアクセスを柔軟に管理することができます。
「高度」の権限を設定する場合は、各役割に割り当てる権限が、ビジネスでの必要性やコレクションの機密性と一致していることを確認してください。たとえば、顧客やリードの詳細に関するコレクションは、商品に関するコレクションとは異なる扱いをする必要があります。

「高度」の権限では、どの役割にどのような権限を付与することができますか?
注意:
- 「高度」の権限では、管理者と共同管理者は、デフォルトでコレクションのすべての操作が実行できるようになっています。ただし、共同管理者の権限はカスタマイズして、コレクションのコンテンツを表示、追加、更新、または削除できるかどうかを選択することができます。
- データへのアクセス権限は、PII 暗号化によって変化されることはありません。データの機密性を維持するために、適切な権限を設定する必要があります。PII とデータセキュリティに関する詳細はこちら
すべてのコレクションの権限を変更する
すべてのコレクションの権限を理解して管理することは、サイトの整合性とセキュリティを維持するためには不可欠です。各コレクションには独自の権限が設定できるため、コンテンツの種類と対象ユーザーに基づいてアクセスをカスタマイズすることができます。これらの権限を定期的に確認・調整することで、サイトのデータを安全に保ち、訪問者が適切なアクセスレベルを有することができます。
サイト所有者などの管理者は、CMS コレクションに自由にアクセスすることができます。これにより、ライブサイトからでも CMS 自体からでも、コレクションのコンテンツを表示、編集、追加、または削除することができます。管理者の役割に割り当てられている権限を変更することはできません。サイトをプレビューする場合は、管理者の役割で行います。別の役割のユーザーとして操作するには、まずサイトを公開してからライブサイトに移動し、サイト会員としてログインするか、ログインせずに「すべての訪問者」の状態で操作を行う必要があります。
サイトでサンドボックスコレクションが有効になっている場合は、ライブサイトがサンドボックスコレクションではなく、ライブコレクションで動作することに注意してください。
共同管理者を管理者に割り当てるにはどうすればよいですか?
Velo by Wix:権限の抑制
データ API を使用してコレクションを操作する場合、場合によっては権限モデルを回避することができます。オプションの WixDataOptions 引数は、suppressAuth プロパティを true に設定して API 関数呼び出しに送ることができます。これにより、現在のユーザーが正しい権限を持っているかをチェックすることなく関数が実行されます。バックエンドコードから API の呼び出しを行う場合のみ、権限を回避することができます。クライアント側の API の呼び出しでは、渡されるオプションに関わらず、常に権限のチェックが実行されます。
たとえば、コレクションにはコメントだけでなく、コメントを送信したユーザーのメールアドレスも含まれる場合があります。メールアドレスを表示できるのは管理者のみですが、コメントは訪問者に表示されます。これは、権限の抑制によって、訪問者にコメントコレクションの「読み取り」を許可していなくても、コメントのみが表示できるようになっているためです。
これは、バックエンドの .jsw ファイルに Web モジュールを記述することで実現できます。このモジュールは suppressAuth プロパティを true に設定してコメントコレクションを呼び出します。その応答をフィルターで除外することで、特にメールを表示することなく訪問者のクライアントに必要な項目(コメント)のみを返します。
1import wixData from 'wix-data';
2// ...
3let options = {
4 "suppressAuth": true
5};
6wixData.query("myCollection")
7 .find(options)
8 .then( (results) => {
9 if(results.items.length > 0) {
10 let items = results.items;
11 let firstItem = items[0];
12 } else {
13 // handle case where no matching items found
14 }
15 } )
16 .catch( (error) => {
17 let errorMsg = error.message;
18 let code = error.code;
19 } );
suppressAuth のもう一つの使用例としては、[カスタムの役割(特定のサイト会員、またはサイト会員の特定のグループ)に、管理者権限で設定したコレクションにアクセスを許可する場合が挙げられます。この場合、Web モジュールはデータを呼び出す前に、サイト会員の ID または役割を確認する必要があります。(英語)
注意:
- コレクションの権限は、コレクションにバインドするデータセットによって読み込まれるデータに影響を与えます。データセットが、コレクションからデータを読み取ることができるか、コレクションにデータを書き込むことができるか、またはそれらの両方ができるかを制御するデータセットモードについてはこちら。
- データセットの設定を使用すると、特定のデータセットに接続された要素が実行できる操作を調整することができます。データは、データ API を使用して、コレクションの権限で指定された範囲内で常にアクセスが可能となります。
- 一部の役割は、サイトに会員エリアがある場合のみ利用することができます。Velo by Wix を使用している場合は、wix-members-backend API を使用して、会員制機能を追加することもできます。(英語)
- suppressAuth オプションを使用すると、バックエンドからデータの呼び出しを行うコードを使用して、コレクションにカスタムの役割を実装することができます。データの呼び出しは、コード内の wix-users API 機能でサイト会員のカスタムの役割が検証された後に行う必要があります。(英語)