# 권한

- Human documentation: [https://docs.univer.ai/ko-KR/guides/slides/features/core/permissions](https://docs.univer.ai/ko-KR/guides/slides/features/core/permissions)

- Agent Markdown: [https://docs.univer.ai/ko-KR/guides/slides/features/core/permissions.md](https://docs.univer.ai/ko-KR/guides/slides/features/core/permissions.md)

- Requested language: `ko-KR`

- Content language: `ko-KR`

- Documentation version: `1.0.4`

- Source: [slides/features/core/permissions.ko-KR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/slides/features/core/permissions.ko-KR.mdx)

---

Slides 권한은 명령으로 업데이트되며 프레젠테이션, 개별 슬라이드, 개별 요소에 적용할 수 있습니다. 자식 편집 권한이 읽기 전용 부모를 무시하지는 않습니다.

## 프레젠테이션 권한

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

프레젠테이션 수준에서는 Edit, Copy, Print, Export, Comment를 지원합니다. `setReadOnly()`는 전체 편집을 끄고 `setEditable()`은 다시 켭니다.

## 슬라이드와 요소 권한

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

최종 `canEdit()` 결과에는 프레젠테이션, 슬라이드, 요소 권한 상한이 모두 적용됩니다. 스냅샷 저장 후에도 권한을 유지해야 한다면 안정적인 ID를 사용하세요.
