# Permisos

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

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

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

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

---

Configura una Base completa o tablas, campos, registros y vistas individuales como solo lectura. Úsalo para informes o para permitir la edición de solo una parte de los datos.

Registra el plugin de Bases e importa `@univerjs-pro/bases/facade` antes de usar estas API.

## Configurar una Base como solo lectura

```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()
```

## Restringir un objeto individual

Por ejemplo, restringe una tabla:

```ts
const table = base.getTables()[0]
if (!table) throw new Error('Create a table first')

await table.getPermission().setReadOnly()
await table.getPermission().setEditable()
```

Los campos, registros y vistas también exponen `getPermission()`, al igual que los paneles y las vistas dinámicas cuando su plugin está registrado. Habilitar un objeto no anula una restricción superior: permitir editar un registro no anula el modo de solo lectura de su tabla.

`setReadOnly()` y `setEditable()` devuelven promesas y requieren `await`. Usa `base.getPermission().setObjectPermissions()` para cambios por lotes; consulta los parámetros en [Bases Facade](https://docs.univer.ai/es-ES/reference/facade/base.md).

## Copia, exportación y comentarios

Los permisos de Base también controlan la copia, la exportación y los comentarios. Por ejemplo, desactiva la copia:

```ts
import { UnitAction } from '@univerjs/protocol'

await base.getPermission().setPoint(UnitAction.Copy, false)
```

Usa `UnitAction.Export` y `UnitAction.Comment` para los permisos de exportación y comentarios.

## Conectar los permisos de negocio

Los permisos locales controlan el comportamiento del editor. Las aplicaciones colaborativas también deben autorizar en el servidor la lectura del contenido, la participación en la colaboración y el envío de cambios; consulta la [integración del servidor](https://docs.univer.ai/es-ES/server.md).

Prueba con un editor, un lector y un usuario sin autorización, comprobando tanto las acciones de la página como las solicitudes directas.
