# Autorisations

- Human documentation: [https://docs.univer.ai/fr-FR/guides/bases/features/core/permissions](https://docs.univer.ai/fr-FR/guides/bases/features/core/permissions)

- Agent Markdown: [https://docs.univer.ai/fr-FR/guides/bases/features/core/permissions.md](https://docs.univer.ai/fr-FR/guides/bases/features/core/permissions.md)

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

- Source: [bases/features/core/permissions.fr-FR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/features/core/permissions.fr-FR.mdx)

---

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

```ts
const base = univerAPI.getActiveBase()
if (!base) throw new Error('Open a Base first')

await base.getPermission().setReadOnly()
console.log(base.getPermission().canEdit()) // false

await base.getPermission().setEditable()
```

## Restreindre un objet individuel

Par exemple, restreignez une table :

```ts
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](https://docs.univer.ai/fr-FR/reference/facade/base.md).

## 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 :

```ts
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](https://docs.univer.ai/fr-FR/server.md).

Testez avec un éditeur, un lecteur et un utilisateur non autorisé, en vérifiant les actions de la page et les requêtes directes.
