CMS:コレクション権限の概要

読了時間:6分
始める前に:
これを読む前に、コレクションフィールドについての説明をお読みください。より具体的なガイドについては、コレクションの権限を変更するをお読みください。
権限を使用することで、コレクション内のデータにアクセス・操作できる訪問者と、訪問者に許可されている操作を制御できます。

たとえば、サイトに訪問者がコメントを投稿できるフィードバックセクションがある場合、投稿されたコメントはコレクションに保存されます。この場合、すべての訪問者に新しいコメントの追加を許可し、すべての訪問者にコメントの閲覧を許可し、管理者のみに既存のコメントの更新または削除を許可することができます。

権限はコレクションごとに定義されます。どのユーザーの役割がどのアクションを実行できるかを決定する権限を割り当てます。たとえば、サイト会員に「コメント」コレクションの作成権限を与えるが、管理者のみに「商品」コレクションのアイテム作成権限を許可する、といった設定が可能です。
Velo by Wix ユーザー:
Wix Data API を使用すると、コードを使用してコレクションに直接アクセスできるため、エディタで利用できる機能よりも多くの機能を利用できます。詳細はこちら

この記事では、次の項目について説明します:


コレクションへのアクセスに関する重要な情報

コレクションの権限プリセットを選択するときは、デフォルトの権限に注意してください。

コレクションの権限モデルには、一般的なシナリオに応じた権限を自動的に設定する多くのプリセットが含まれています。たとえば、公開の設定は、ユーザーデータのないコレクションなど、機密性の低い情報にのみ使用してください。これは、そのコレクションの読み取り権限がすべてのユーザーの役割に設定され、その他のすべてのアクションが管理者の役割のみに制限されるためです。
  • 閲覧 - すべてのユーザー
  • 追加 - 管理者
  • 更新 - 管理者
  • 削除 - 管理者
もう 1つの例は、次の権限を定義するフォームの回答プリセットです。
  • 閲覧 - 管理者
  • 追加 - すべてのユーザー
  • 更新 - 管理者
  • 削除 - 管理者

カスタム設定を使用する場合は、割り当てる権限がコレクション内のデータのビジネスロジックや機密区分と一致していることを確認してください。たとえば、顧客やビジネスリードに関する詳細を含むコレクションは、商品に関するコレクションとは異なる扱いをする必要があります。

適用する権限に応じて、サイトのフローに関係なく、コレクション内の情報にアクセスまたは変更できることに注意してください。たとえば、サイトに新しいコメントをコメントコレクションに挿入するための送信ボタンを含めることができます。ただし、誰でもコメントを削除できるようにコレクションが設定されている場合は、ページ上にボタンがなくても、コレクションを直接呼び出すことでこれを実行することが可能になります。
重要:
データセットの設定はページで実行できるアクションに影響しますが、さまざまな役割でデータに対して実行できる操作を実際に制限できるのはコレクションの権限のみです。詳細はこちらをご覧ください。

権限

次の権限がサポートされています。
権限
詳細
表示
データの取得と表示
追加
新しいデータの追加
削除
既存アイテムの削除
更新
既存アイテムの編集
注意:
データアクセス権限は、PII 暗号化によって変更されることはありません。データの機密性を維持するには、適切な権限を設定する必要があります。PII についての詳細はこちらをご覧ください。

役割

役割は、サイトでのアクティビティとステータスに基づいてユーザーに自動的に割り当てられます。編集または削除できるのは、自分で作成したカスタム役割のみです。
役割
詳細
管理者
サイトの所有者、管理者(共同所有者)の役割が割り当てられた共同管理者、CMS データへのアクセス権限を持つ共同管理者。
サイト会員執筆者
現在のアイテムを作成したユーザー
サイト会員
サイトにログインしているユーザー
すべてのユーザー
サイトにログインしていないインターネット上のユーザー(訪問者である場合もそうでない場合もある)
カスタム
作成し、ニーズに合わせて調整できる役割。詳細はこちら
現在、カスタム役割はコレクションの権限モデルではサポートされていません。ただし、Velo ユーザーは、コレクション権限を「管理者」に設定し、コードを使用して suppressAuth オプションでデータの呼び出しを行うことで、コレクションにカスタム役割を実装できます。データの呼び出しは、コード内の wix-users API 機能で会員制カスタム役割が検証された後に行う必要があります。
管理者は、すべてのアクションに対する権限を常に保持します。

サイト会員執筆者の役割は、サイト全体に適用されるのではなく、コレクション内の特定のアイテムに適用される点で他の役割とは異なります。サイト会員執筆者は、特定のアイテムを作成したサイト会員であり、他の方法では付与されなかった、そのアイテムに対する追加の権限を受け取ります。

サイトをプレビューするときは、管理者の役割でプレビューします。別のタイプのユーザーとして操作するには、まずサイトを公開してからライブサイトに移動し、別のユーザーでログインするか(サイト会員)、まったくログインしない(全ユーザー )で操作を実行してください。サイトでサンドボックスを有効にすると、ライブサイトはライブコレクションで動作し、CMS やサイトのプレビュー時に表示されるサンドボックスコレクションでは動作しません。
注意:
一部の役割は、サイトに会員エリアがある場合にのみ利用できます。Velo by Wix を使用している場合、wix-users API を使用して、会員制機能を追加することもできます。

コレクション権限のプリセット

コレクションの権限を設定する際、プリセットのリストから選択することができます。以下の表に示すように、プリセットはいくつかの一般的なシナリオの権限を自動的に設定します。

選択したプリセットに基づき、各役割にはシナリオのニーズに合った権限が割り当てられます。いつでも「カスタム設定」を選択して、役割に付与された権限をカスタマイズできます。
タイプ
読み込み
追加
更新
削除
公開
すべてのユーザー
管理者
管理者
管理者
フォームの回答
管理者
すべてのユーザー
管理者
管理者
サイト会員による
コンテンツ
すべてのユーザー
サイト会員
サイト会員
執筆者
サイト会員
執筆者
サイト会員限定コンテンツ
サイト会員
管理者
管理者
管理者
サイト会員のフォーム回答
管理者
サイト会員
管理者
管理者
プライベートデータ
管理者
管理者
管理者
管理者
カスタム
-
-
-
-

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 のもう一つの使用例は、[カスタム役割(特定のサイト会員またはサイト会員の特定のグループ)に、管理者権限で設定されたコレクションへのアクセスを許可したい場合です。

2番目の例では、Web モジュールはデータを呼び出す前に、ID を確認するか、サイト会員の役割を確認する必要があります。最初の例では、Web モジュールはデータをクライアントに戻す前に、結果をフィルターで除外する必要があります。(英語)
注意:
  • 権限は、データセットによって読み込まれるデータに影響を与えます。動作の詳細はこちらをご覧ください。
  • データセット設定を使用して、特定のデータセットに接続された要素によって実行できるデータ操作を絞り込むことができます。データはデータ API を使用して、権限によって指定された範囲内で常にアクセスが可能になります。
  • データベースコレクションの権限を設定する方法はこちらをご覧ください。

お役に立ちましたか?

|