権限
Base 全体、または個別のテーブル、フィールド、レコード、ビューを読み取り専用にできます。レポート表示や、一部のデータだけ編集を許可する場合に使用します。
これらの API を使う前に、Bases プラグインを登録し、@univerjs-pro/bases/facade をインポートしてください。
Base を読み取り専用にする
TypeScript
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await base.getPermission().setReadOnly()console.log(base.getPermission().canEdit()) // falseawait base.getPermission().setEditable()個別のオブジェクトを制限する
例えば、1 つのテーブルを制限します。
TypeScript
const table = base.getTables()[0]if (!table) throw new Error('Create a table first')await table.getPermission().setReadOnly()await table.getPermission().setEditable()フィールド、レコード、ビューにも getPermission() があります。対応するプラグインを登録すると、ダッシュボードとピボットビューでも利用できます。オブジェクトを編集可能にしても親の制限は解除されません。例えば、レコードを編集可能にしても、読み取り専用テーブルの制限を上書きできません。
setReadOnly() と setEditable() は Promise を返すため、await が必要です。一括変更には base.getPermission().setObjectPermissions() を使います。引数は Bases Facade を参照してください。
コピー、エクスポート、コメント
Base レベルの権限ではコピー、エクスポート、コメントも制御できます。例えば、コピーを無効にします。
TypeScript
import { UnitAction } from '@univerjs/protocol'await base.getPermission().setPoint(UnitAction.Copy, false)エクスポートとコメントの権限には、それぞれ UnitAction.Export と UnitAction.Comment を使います。
業務上の権限との連携
ローカルの権限はエディターの動作を制御します。共同編集アプリケーションでは、コンテンツの読み取り、共同編集への参加、変更の送信をサーバー側でも認可する必要があります。サーバー統合を参照してください。
編集者、閲覧者、権限のないユーザーでテストし、ページ操作と直接リクエストの両方を確認してください。
このガイドはいかがですか?