권한
Base 전체 또는 개별 테이블, 필드, 레코드, 뷰를 읽기 전용으로 설정할 수 있습니다. 보고서를 제공하거나 일부 데이터만 편집하도록 허용할 때 사용하세요.
이 API를 사용하기 전에 Bases 플러그인을 등록하고 @univerjs-pro/bases/facade를 가져오세요.
Base를 읽기 전용으로 설정
TypeScript
const base = univerAPI.getActiveBase()if (!base) throw new Error('Open a Base first')await base.getPermission().setReadOnly()console.log(base.getPermission().canEdit()) // falseawait base.getPermission().setEditable()개별 객체 제한
예를 들어 한 테이블을 제한할 수 있습니다.
TypeScript
const table = base.getTables()[0]if (!table) throw new Error('Create a table first')await table.getPermission().setReadOnly()await table.getPermission().setEditable()필드, 레코드, 뷰도 getPermission()을 제공합니다. 해당 플러그인이 등록되어 있으면 대시보드와 피벗 뷰에서도 사용할 수 있습니다. 객체의 편집을 허용해도 상위 제한을 재정의하지는 않습니다. 레코드를 편집 가능하게 설정해도 테이블의 읽기 전용 제한은 유지됩니다.
setReadOnly()와 setEditable()은 Promise를 반환하므로 await가 필요합니다. 일괄 변경에는 base.getPermission().setObjectPermissions()를 사용하세요. 매개변수는 Bases Facade를 참고하세요.
복사, 내보내기 및 댓글
Base 수준 권한은 복사, 내보내기, 댓글도 제어합니다. 예를 들어 복사를 비활성화합니다.
TypeScript
import { UnitAction } from '@univerjs/protocol'await base.getPermission().setPoint(UnitAction.Copy, false)내보내기와 댓글 권한에는 UnitAction.Export와 UnitAction.Comment를 사용하세요.
업무 권한 연결
로컬 권한은 편집기 동작을 제어합니다. 공동 편집 애플리케이션은 서버에서도 콘텐츠 읽기, 공동 편집 참여, 변경 제출을 승인해야 합니다. 서버 통합을 참고하세요.
편집자, 보기 전용 사용자, 권한이 없는 사용자로 페이지 동작과 직접 요청을 모두 테스트하세요.
이 가이드는 어떠셨나요?