Permissions

Slides permissions are command-backed and can be applied to the presentation, one slide, or one element. Child edit permissions never override a read-only parent.

Presentation permissions

TypeScript
import { UnitAction } from '@univerjs/protocol'const presentation = univerAPI.getActivePresentation()if (!presentation) {  throw new Error('No active presentation')}const permission = presentation.getPermission()await permission.setPoint(UnitAction.Export, false)await permission.setPoint(UnitAction.Print, true)console.log(permission.getPoint(UnitAction.Print))

Presentation-level actions support Edit, Copy, Print, Export, and Comment. setReadOnly() disables editing for the whole presentation; setEditable() enables it again.

Slide and element permissions

TypeScript
const slide = presentation.getSlideByIndex(0)const element = slide?.getElements()[0]if (slide && element) {  await slide.getPermission().setEditable(false)  await slide.getElementPermission(element.getId()).setEditable(true)  console.log(slide.getElementPermission(element.getId()).canEdit())}

The final canEdit() result applies the presentation, slide, and element permission ceilings. Keep stable slide and element IDs when permissions must survive snapshot persistence.

How is this guide?

© 2026 DreamNum Co., Ltd.