Autorisations
Rendez une Base entière ou certaines tables, certains champs, enregistrements et vues accessibles en lecture seule. Utilisez cette possibilité pour les rapports ou pour limiter les modifications à une partie des données.
Enregistrez le plugin Bases et importez @univerjs-pro/bases/facade avant d’utiliser ces API.
Rendre une Base accessible en lecture seule
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()Restreindre un objet individuel
Par exemple, restreignez une table :
const table = base.getTables()[0]if (!table) throw new Error('Create a table first')await table.getPermission().setReadOnly()await table.getPermission().setEditable()Les champs, enregistrements et vues exposent également getPermission(), tout comme les tableaux de bord et les vues pivot lorsque leur plugin est enregistré. Autoriser la modification d’un objet ne remplace pas une restriction du parent : rendre un enregistrement modifiable ne permet pas de modifier une table en lecture seule.
setReadOnly() et setEditable() renvoient des promesses et nécessitent await. Utilisez base.getPermission().setObjectPermissions() pour les modifications groupées ; les paramètres figurent dans Bases Facade.
Copie, export et commentaires
Les autorisations au niveau de la Base contrôlent aussi la copie, l’export et les commentaires. Par exemple, désactivez la copie :
import { UnitAction } from '@univerjs/protocol'await base.getPermission().setPoint(UnitAction.Copy, false)Utilisez UnitAction.Export et UnitAction.Comment pour les droits d’export et de commentaire.
Connecter les autorisations métier
Les autorisations locales contrôlent le comportement de l’éditeur. Les applications collaboratives doivent aussi autoriser côté serveur la lecture du contenu, la participation à la collaboration et l’envoi de modifications ; consultez l’intégration serveur.
Testez avec un éditeur, un lecteur et un utilisateur non autorisé, en vérifiant les actions de la page et les requêtes directes.
Que pensez-vous de ce guide ?