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?